程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-用程序實現安裝.apk,引用程序無法運行

android-用程序實現安裝.apk,引用程序無法運行

編輯:編程綜合問答
用程序實現安裝.apk,引用程序無法運行

我想要實現自動更新之後馬上自動安裝,它是本地的所以它不是在應用市場裡的。
這是我的代碼

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, "app.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();
           Intent promptInstall= new Intent(Intent.ACTION_VIEW)
           .setData(Uri.parse(PATH+"app.apk"))
           .setType("application/android.com.app");
            startActivity(promptInstall);
       } catch (IOException e) {
           Toast.makeText(getApplicationContext(), "Update error!", Toast.LENGTH_LONG).show();
       }
 }  

我的權限是INTERNET, WRITE_EXTERNAL_STORAGE, INSTALL_PACKAGES, DELETE_PACKAGES
當網絡提示安裝加載的時候,引用程序就無法繼續運行
所以,是我缺少什麼權限還是我的代碼不正確,或者有更好的方法來實現嗎?

最佳回答:


我已經解決了這個問題了,在setdata和settype中有錯誤

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);

現在正確了,我的自動更新也可以了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved