2013-05-03 115 views
0
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); 

此發現這裏安裝APK: Question [4967669] android-install-apk-programmatically如何以編程方式從服務

使用的是Android 服務,如果做到這一點,我得到了以下錯誤消息:

05- 03 08:24:14.559:E/AndroidRuntime(21288):致命例外: 線程-1706 05-03 08:24:14.559:E/AndroidRuntime(21288): android.util.AndroidRuntimeException:從調用startActivity活動上下文之外需要FLAG_ACTIVITY_NEW_TASK 標誌。這真的是你想要的嗎?

我加了FLAG_ACTIVITY_NEW_TASK:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

但現在什麼也沒有發生。沒有錯誤,但也沒有嘗試安裝apk。 我想這可能是因爲它沒有活動(因爲它是一種服務)?

問題 是否可以通過android後臺服務安裝APK? (如果是這樣)做任何一個knwo我該怎麼做?

由於提前

PS:從我服務的理解他們是非常喜歡的活動等等不知道爲什麼這不會工作。

+0

http://stackoverflow.com/questions/4604239/install-application-programmatically-on-android。檢查接受的答案在鏈接 – Raghunandan 2013-05-03 07:56:55

+0

可以幫助我從哪些鏈接或資源你採取的幫助我是新手,並面臨難以實現相同的目標 – nida 2014-01-16 08:42:12

回答

3

您可以從後臺服務安裝APK。 嘗試使用Uri.parse,而不是Uri.fromFile

 File apkfile = new File(Environment.getExternalStorageDirectory() + 
        "/download/" + "app.apk"); 
     if (!apkfile.exists()) { 
      return; 
     } 
     Intent installIntent = new Intent(Intent.ACTION_VIEW); 
     installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     installIntent.setDataAndType(
       Uri.parse("file://" + apkfile.toString()), 
       "application/vnd.android.package-archive"); 
     startActivity(installIntent); 
+0

它從服務工作。我的APK實際上已損壞,並顯示正在被活動隱藏的解析消息。謝謝。 – 2013-05-03 08:33:42

相關問題