2016-04-22 74 views
0

我想先嚐試解析錯誤。但第二次嘗試成功安裝在Android

首先,寫我的服務器URL 2.下載APK 3.安裝APK

當我安裝APK

解析錯誤消息。 但重試安裝,成功安裝apk。

總之,首先嚐試安裝apk。嘗試後解析錯誤消息 。成功安裝apk。

String url = "https://myserver/.apk "; 
      File apkFile = new File("/sdcard/Download/openapk.apk"); 

      Uri mUri = Uri.parse(url); 
      DownloadManager.Request r = new DownloadManager.Request(mUri); 
      r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "openapk.apk"); 
      r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
      DownloadManager dm = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); 
      dm.enqueue(r); 



      Uri apkUri = Uri.fromFile(apkFile); 
      Intent webIntent =new Intent(Intent.ACTION_VIEW); 
      webIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive"); 
      webIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(webIntent); 
+0

[解析錯誤安裝的APK結果]的可能的複製(http://stackoverflow.com/questions/36783585/installing-an-apk-results-in-a-parse-錯誤) –

回答

0

下載管理器以異步方式工作,所以你不能只是嘗試安裝的APK馬上對你叫dm.enqueue()後因爲你的代碼是不是等候在那裏,但正如名字告訴,入列的下載,並將控制返回到您的代碼,而下載繼續單獨工作。

您必須等待下載管理器完成,然後嘗試安裝您的應用程序。下載管理器廣播ACTION_DOWNLOAD_COMPLETE下載完成時的意圖操作,所以你只需要等待它,然後採取行動。

文檔:https://developer.android.com/reference/android/app/DownloadManager.html