リモート 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 を使用する必要がありますか?