0

アプリケーションを自動的に更新したい
これは私が使用しているコードです

public void Update(String apkurl){
      try {
            URL url = new URL(apkurl);
            HttpURLConnection c = (HttpURLConnection) url.openConnection();
            c.setRequestMethod("GET");
            c.setDoOutput(true);
            c.connect();

            String PATH = Environment.getExternalStorageDirectory() + "/download/";
            File file = new File(PATH);
            file.mkdirs();
            File outputFile = new File(file, "DeliverReceipt.apk");
            FileOutputStream fos = new FileOutputStream(outputFile);

            InputStream is = c.getInputStream();

            byte[] buffer = new byte[1024];
            int len1 = 0;
            while ((len1 = is.read(buffer)) != -1) {
                fos.write(buffer, 0, len1);
            }
            fos.close();
            is.close();//till here, it works fine - .apk is download to my sdcard in download file

            /*Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/apk/" + "DeliverReceipt.apk")), "application/vnd.android.package-archive");
            startActivity(intent);  //installation is not working        
            */
        } catch (IOException e) {
            Toast.makeText(getApplicationContext(), "Update error!", Toast.LENGTH_LONG).show();
        }
  }

ダウンロードしたファイルのサイズはわずか 20kb で、元のファイルよりも小さくなってい
ます。この問題を解決するにはどうすればよいですか?
ありがとうございます
*注意: ブラウザでこの URL を試してみると、動作します。apk をダウンロードできます

4

1 に答える 1

0

ファイルを閉じる前に、おそらくフラッシュする必要があります。fos.flush()

于 2012-10-24T11:23:59.447 に答える