Android:为什么下载管理器自动运行(下载)apk文件在Android



问题是,在我使用此方法从服务器下载.apk-file后:

public void Update(String apkName) {
    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
    File file = new File("/sdcard/Download/"+ apkName + ".apk");
    if (file.exists()) {
        file.delete();
    }
    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS + "/", apkName + ".apk");       
    DownloadManager manager = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
    manager.enqueue(request);
}

然后我使用broadcastreceiver在下载操作完成时采取安装操作,如下所示:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
// some codes here...
BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)){
                Intent i = new Intent(Intent.ACTION_VIEW);
                i.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/Download/" + apkName + ".apk")),
                        "application/vnd.android.package-archive");
                startActivity(i);
            } else {
            }
        }
    };
    getActivity().registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
    download_apk(apkName);
    return rootView;
}

现在的问题是当下载操作完成下载管理器尝试安装apk文件,我得到这个是"解析错误/有一个问题解析包"。

在我点击OK之后,真正的安装页面出现了(这是由broadcastreceiver触发的)。

我在活动中运行这个过程,它非常好。正如你在上面看到的,这一次它是在片段!这可能是原因吗?

如何阻止下载管理器自动运行apk ?有人能帮我一下吗?

为什么下载管理器自动运行(下载)apk文件在android?

下载管理器不自动启动下载APK。

如何阻止下载管理器自动运行apk ?

显然你不理解你粘贴在你的问题中的代码,所以触摸APK是广播接收。只要删除它和它的注册,你就完成了。

相关内容

  • 没有找到相关文章

最新更新