У меня возникли проблемы при попытке создать растровое изображение из удаленного URL-адреса.Вот фрагмент:
Bitmap bm = null;
URL aURL = null;
try {
aURL = new URL("http://developer.android.com/assets/images/home/honeycomb-android.png");
} catch (MalformedURLException e) {
System.err.println(e);
}
if(aURL != null){
URLConnection conn = null;
BufferedInputStream bis = null;
InputStream is = null;
try {
conn = aURL.openConnection();
conn.connect();
is = conn.getInputStream();
bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
} catch (Exception e) {
System.err.println(e);
} finally {
if(bis != null){
try {
bis.close();
} catch (IOException e) {}
}
if(is != null){
try {
is.close();
} catch (IOException e) {}
}
conn = null;
}
}
Я получаю исключение в строке conn.connect()
.Там написано java.net.SocketException: Permission denied
.
Я уже добавил разрешение в манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0" package="mypackage.namehere">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
</application>
</manifest>
Я могу загрузить изображение как из браузера на компьютере, так и из браузера эмулятора.Там нет брандмауэра, блокирующего мое интернет-соединение.Пробовал с несколькими URL, но ничего не получилось.
Правильно ли я открываю соединение?Должен ли я использовать вместо HttpConnection?