我正在尝试以下代码来安装保存在SD卡上的apk文件并获得以下异常:“android.content.ActivityNotFoundException:无法找到显式活动类{com.android.packageinstaller / .PackageInstallerActivity}”。在代码中,file
表示apk文件的SD卡路径。
Intent resultIntent = new Intent(android.content.Intent.ACTION_VIEW);
resultIntent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
resultIntent.setClassName("com.android.packageinstaller", ".PackageInstallerActivity");
startActivity(resultIntent);
请让我知道如何管理。
由于 Javed khan
答案 0 :(得分:4)
您可能希望阅读有关如何使用PackageInstaller安装和删除软件包的this blog post。
请注意,由于已注册包安装程序以处理MIME类型application/vnd.android.package-archive
,因此您不必明确指定intent类名;意图解析器应该找到合适的解决方案。
此外,仅当用户启用INSTALL_NON_MARKET_APPS
时,操作才会成功。这与您所看到的失败直接相关,但要记住这一点,因为您可能会遇到这种情况。
答案 1 :(得分:0)
尝试像这样添加Intent.FLAG_ACTIVITY_NEW_TASK
:
Intent resultIntent = new Intent();
resultIntent.setAction(Intent.ACTION_VIEW);
resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
resultIntent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
然后致电
startActivity(resultIntent);
请注意!正如Franci Penov先前提到的那样,关于INSTALL_NON_MARKET_APPS
的条件仍然有效!