我的应用程序正在尝试安装 APK。
Intent installIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
installIntent.setData(Uri.fromFile(new File(pathToApk)));
installIntent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
installIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
((Activity)context).startActivityForResult(installIntent, Constants.APP_INSTALL_REQUEST);
在我的活动中
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case Constants.APP_INSTALL_REQUEST:
if(resultCode == RESULT_OK){
Log.e(TAG, "Package Installation Success");
}else if(resultCode == RESULT_FIRST_USER){
Log.e(TAG, "Package Installation Cancelled by USER");
}else{
Log.e(TAG, "Something went wrong - INSTALLATION FAILED");
}
当我的 startActivityResult 被触发时,我的活动立即获得结果代码 0,它对应于 RESULT_CANCELLED,而系统安装 UI 仍在等待用户权限。
我的活动是实际了解安装是否成功,并根据该信息更新其 UI。
任何帮助,将不胜感激。
找到了罪魁祸首。
*installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);*
尽管系统使我的活动的现有实例恢复生机,但它是在新任务栈。所以系统在开始新的TASK之前会取消activityForResult。
谢谢
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)