我想要
首先,编写我的服务器URL 2.下载apk 3.安装apk
当我安装apk
解析错误消息。 但重试安装,成功安装apk。
总之,首先尝试安装apk。解析错误消息 试过后。成功安装apk。
String url = "https://myserver/.apk ";
File apkFile = new File("/sdcard/Download/openapk.apk");
Uri mUri = Uri.parse(url);
DownloadManager.Request r = new DownloadManager.Request(mUri);
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "openapk.apk");
r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
DownloadManager dm = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
dm.enqueue(r);
Uri apkUri = Uri.fromFile(apkFile);
Intent webIntent =new Intent(Intent.ACTION_VIEW);
webIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
webIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(webIntent);
答案 0 :(得分:0)
下载管理器以异步方式工作,因此您不能在调用dm.enqueue()
后立即尝试立即安装APK,因为您的代码没有在那里等待,但是,正如名称所示,将下载排入队列并在下载时将控制权返回给您的代码继续分开工作。
您必须等待下载管理器完成,然后尝试安装您的应用。下载管理器在下载完成后广播ACTION_DOWNLOAD_COMPLETE
意图操作,因此您只需等待它然后再行动。
文档:https://developer.android.com/reference/android/app/DownloadManager.html