Android 必知必会 - InstallerPackageName 的一点补充

因业务需要,项目需要一些 InstallerPackageName 方面的一些知识,随便看了下,很多开发估计不知道还有这档子事情。阅读资料发现一篇文章讲的还是很全面的,但是有些细节在实践中还是需要补充下。

原文链接:Android:关于InstallerPackgeName的二三事

上面的文章内容有几点要说下:

1、常见的返回值:

com.google.android.packageinstaller 设备默认安装器,这个是特殊机器的包名情况,我通过阅读各版本(2.3-7.1)的 Android 源码,发现都是 com.android.packageinstaller ,不过最终是哪个还得看手机厂商。
2、如何修改渠道号:代码修改

对于 setInstallerPackageName(String targetPackage, String installerPackageName) 而言:

  • targetPackage 、installerPackageName 都要求是本机已安装应用的包名;
  • installerPackageName:要求调用者 App 的签名和 installerPackageName 所对应的 App 的签名相同,即同为系统签名或者同一个签名文件签发的 App。

以 targetPackage 的 installerPackageName 是否为空的2种情况来说明:

  • 有一个 App(PackageName = A),其 installerPackageName 是 B,App(PackageName = C)想要修改 A 的 installerPackageName,要求 C 必须和 B 是同一个签名文件签发的。

  • 有一个 App(PackageName = X),其 installerPackageName 为空(null),App(PackageName = Z)想要修改 X 的 installerPackageName,要求 Z 传入的 installerPackageName 必须和 Z 自己是同一个签名文件签发的。

PS:如果有什么建议或者问题,可以通过下面的方式和我联系

猜你喜欢

转载自blog.csdn.net/ys743276112/article/details/78840981
今日推荐