2012-08-31 84 views
7
  1. 首先我有一個server.I檢查服務器是否有任何new apk文件我下載並嘗試安裝。
  2. 如果服務器有new version of apk file那麼我想更新我的.apk文件
  3. 我想安裝/更新無需用戶交互。是否有可能?
  4. 如果需要用戶交互,那麼我該如何安裝/更新.apk文件。

我對此沒有多少想法。聽從服務器更新ans安裝

Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "jarviz.apk")), "application/vnd.android.package-archive"); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

但這不是working.WHen我調試我看不到任何錯誤,但它不install.How我能爲英語不好做that.Sorry。

+3

爲什麼你不使用Play商店分發你的應用程序?它會照顧你所有的這一切。據我所知,沒有用戶交互的情況下安裝應用程序是沒有辦法的,我不認爲你可以通過程序來完成。要麼是一個巨大的安全問題。 –

+0

公平警告:如果不想使用Google Play並將apk安裝到公衆場合,可能會有人拿你的apk,解壓並自行重新發布。 – jnthnjns

+0

@Asok你說在Google Play上使用它可以在這個主題上有所作爲? :) –

回答

5

我這樣解決了這個問題。

String vsName=Environment.getExternalStorageDirectory().getAbsolutePath()+"/download/"; 
File file = new File(vsName, "jarviz.apk"); 
System.out.println(":"+file); 
Intent install=new Intent(Intent.ACTION_VIEW); 
install.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); 
install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(install); 
+0

你能解釋一下我的代碼嗎? – hemant

0

你的代碼幾乎是正確的,但你剛剛創建了這個意圖。您還需要啓動它作任何效果:

startActivity(intent); 

,並確保您下載的外部存儲設備上jarviz.apk確實download/文件夾,你是指它的意圖。

+1

@ WebnetMobile.com我已經檢查。我得到了這個錯誤。 android.content.ActivityNotFoundException:沒有找到處理Intent的活動{act = android.intent.action.VIEW typ = application/vnd.android.package-archive flg = 0x10000000}讓我知道。 – Maidul