5

我已经使用下载管理器 api 下载了 apk 文件,但我不知道该文件存储在哪里。现在我必须找到该 apk 文件并安装它提供一些线索。提前致谢

4

3 回答 3

6

要安装 apk,请使用以下代码:

Intent promptInstall = new Intent(Intent.ACTION_VIEW)
    .setData(Uri.parse("file:///path/to/your.apk"))
    .setType("application/vnd.android.package-archive");
startActivity(promptInstall); 
于 2013-08-20T09:36:50.193 回答
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);
}
};
于 2013-08-20T09:43:02.560 回答
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);  
于 2013-10-03T21:04:33.623 回答