android.permission. install-PACKAGES在android-studio中的权限

r7xajy2e  于 2023-02-05  发布在  Android
关注(0)|答案(2)|浏览(675)

我想知道我的应用程序是从何处安装的 (谁安装了我的应用程序)
我需要使用getInstallerPackageName()。而且这个方法需要android.permission.INSTALL_PACKAGES权限。但是这个权限是没有授予由 * 系统 *。


在上述所有方法中返回null
1.* * 您建议用什么方法来解决此问题?**
1.* * 你建议用什么其他方法**
谢谢。

z2acfund

z2acfund1#

我不建议使用此权限:这可能会导致您的应用程序从Google Play商店中删除
您应使用REQUEST_INSTALL_PACKAGES。根据文档说明,不允许第三方应用使用INSTALL_PACKAGES权限:www.example.comhttps://developer.android.com/reference/android/Manifest.permission.html#INSTALL_PACKAGES
另请参阅:https://android-developers.googleblog.com/2017/08/making-it-safer-to-get-apps-on-android-o.html?m=1
更新(src):
Google Play限制使用高风险或敏感权限,包括允许应用请求安装软件包的REQUEST_INSTALL_PACKAGES权限。面向API级别26或更高级别的应用必须拥有此权限才能使用Intent. ACTION_INSTALL_PACKAGE或PackageInstaller API。

x6yk4ghg

x6yk4ghg2#

您可以使用PackageManager的getInstallerPackageName() API而无需INSTALL_PACKAGES。Android文档建议自API级别30起不再使用该API,但:

  • android文档建议使用软件包管理器的getInstallSourceInfo,而installSourceInfo'sgetOriginatingPackageName()可以获得所需的信息。但是,只有getOriginatingPackageName()需要INSTALL_PACKAGES。
  • getOriginatingPackageName()仅在Android R及以上版本中可用,因此我猜Google可能暂时对已弃用的getInstallerPackage()的使用视而不见。为此,您不需要INSTALL_PACKAGES权限。
  • 应用程序中的实际测试/使用发现getInstallerPackageName()仍然可以按预期工作,并且没有INSTALL_PACKAGES权限。

相关问题