iis7でホストされているAndroidAPKファイルがあり、Androidアプリ内からダウンロードしてインストールしたいと思います。この質問のコードに大きく依存していますが、fileNotFound例外が発生しています。InputStream is = con.getInputStream();
デスクトップと電話(Samsung galaxy Nexus)の両方のブラウザ内からapkファイルをダウンロードでき、aisにapkmimeタイプを追加しました。
これが私のコードです。
protected Void doInBackground(Void... params) {
try {
URL url = new URL("http://android.atomweb.net.au/CasLite.apk");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.connect();
String PATH = Environment.getExternalStorageDirectory() + "/download/";
File file = new File(PATH);
file.mkdirs();
File outputFile = new File(file, "app.apk");
FileOutputStream fos = new FileOutputStream(outputFile);
InputStream is = con.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
fos.close();
is.close();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")),
"application/vnd.android.package-archive");
startActivity(intent);
} catch (IOException e) {
Log.d("Error", e.getLocalizedMessage());
}
return null;
}
ブレークポイントを投稿して、接続が確立された後、getInputStreamの前に接続応答コードを確認すると、その405です。