2013-08-20 161 views
5

我已經下載了使用下載管理器API的apk文件,我不知道該文件存儲在哪裏。現在我必須找到該apk文件並安裝它 提供一些線索。在此先感謝下載後自動安裝apk文件

+0

你有沒有指定位置。 – Prakhar

+0

可能重複的[安卓:編程安裝.apk](http://stackoverflow.com/questions/4967669/android-install-apk-programmatically) – jk2K

回答

5

要安裝的APK使用此代碼:

Intent promptInstall = new Intent(Intent.ACTION_VIEW) 
    .setData(Uri.parse("file:///path/to/your.apk")) 
    .setType("application/vnd.android.package-archive"); 
startActivity(promptInstall); 
+0

感謝您的反應Prakhar – Uday

+1

然後upvote或接受.. – Prakhar

+0

嗨,應該在哪裏我把apk文件? –

3

要在下載後自動安裝的文件,你需要聲明告訴設備通過廣播這個消息後,下載後執行此操作下載:

registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 

,並在處理程序:

BroadcastReceiver onComplete=new BroadcastReceiver() { 
public void onReceive(Context ctxt, Intent intent) { 

    long id = intent.getExtras().getLong(DownloadManager.EXTRA_DOWNLOAD_ID); 
    DownloadManager dm =(DownloadManager)getSystemService(DOWNLOAD_SERVICE); 
    intent = new Intent(Intent.ACTION_VIEW); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.setDataAndType(dm.getUriForDownloadedFile(id), 
    dm.getMimeTypeForDownloadedFile(id)); 
    startActivity(intent); 
} 
}; 
+0

@Adb EI-Rahman,我根據你的說法做了修改,但沒有得到我給「文件名」所做的修改,因爲我不知道下載後文件的保存位置。 – Uday

+0

@Uday編輯後嘗試此代碼..它應該工作 –

+0

@Adb EI-Rahman我把你給的代碼,但它顯示錯誤「方法getUriForDownloadedFile(長)是未定義的類型DownloadManager。」 :( – Uday

0

@Uday,@Adb El-Rahman的代碼有效。初始化下載時,您需要設置目標uri。

String sAndroidUrl = "http://somesite.com/Install.apk"; 

dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
Request request = new Request(Uri.parse(sAndroidUrl)); 
String sDest = "file://" + android.os.Environment.getExternalStorageDirectory().toString() + "/Download/Install.apk"; 
request.setDestinationUri(Uri.parse(sDest)); 
enqueue = dm.enqueue(request); 
+0

我在哪裏放這個代碼? – hariszaman