我想知道我的应用程序是从何处安装的 (谁安装了我的应用程序)。
我需要使用getInstallerPackageName()
。而且这个方法需要android.permission.INSTALL_PACKAGES
权限。但是这个权限是没有授予由 * 系统 *。
在上述所有方法中返回null
。
1.* * 您建议用什么方法来解决此问题?**
1.* * 你建议用什么其他方法**
谢谢。
我想知道我的应用程序是从何处安装的 (谁安装了我的应用程序)。
我需要使用getInstallerPackageName()
。而且这个方法需要android.permission.INSTALL_PACKAGES
权限。但是这个权限是没有授予由 * 系统 *。
在上述所有方法中返回null
。
1.* * 您建议用什么方法来解决此问题?**
1.* * 你建议用什么其他方法**
谢谢。
2条答案
按热度按时间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。
x6yk4ghg2#
您可以使用PackageManager的
getInstallerPackageName()
API而无需INSTALL_PACKAGES。Android文档建议自API级别30起不再使用该API,但:installSourceInfo's
getOriginatingPackageName()
可以获得所需的信息。但是,只有getOriginatingPackageName()
需要INSTALL_PACKAGES。getOriginatingPackageName()
仅在Android R及以上版本中可用,因此我猜Google可能暂时对已弃用的getInstallerPackage()
的使用视而不见。为此,您不需要INSTALL_PACKAGES权限。getInstallerPackageName()
仍然可以按预期工作,并且没有INSTALL_PACKAGES权限。