Bau*_*i89 0 android install android-intent apk
在我的应用程序中,我从服务器下载apk并将其保存在设备上。该apk用于更新应用。如果下载完成,则提示用户使用以下代码进行下载:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri apkUri = FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID + ".provider", updateAPK);
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
intent.setData(apkUri);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
} else {
Uri apkUri = Uri.fromFile(updateAPK);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
这可以正常工作,但是我的问题是:ist能否获得意图的结果,因此我可以检查用户是否取消了安装?
将您的方案分为三个方案,而不是两个。
在除API等级14,使用老设备ACTION_VIEW用file Uri。请注意,您不需要FLAG_ACTIVITY_NEW_TASK-更准确地说,在所有三种情况下使用或不使用它都应保持一致。
在API级别14-23的设备上,ACTION_INSTALL_PACKAGE与一起使用file Uri。设置EXTRA_RETURN_RESULT为true,然后使用startActivityForResult()。
在API级别为24+的设备上,请ACTION_INSTALL_PACKAGE与一起使用content Uri。设置EXTRA_RETURN_RESULT为true,然后使用startActivityForResult()。
在后两种情况下,onActivityResult()将报告用户是否安装了该应用程序(RESULT_OK)。
| 归档时间: |
|
| 查看次数: |
988 次 |
| 最近记录: |