我正在编写一个“解锁器”应用来解锁我应用的高级功能,并使用PackageManager.checkSignatures: (a)检查是否安装了解锁器应用程序(来自主应用程序的MainActivity) (b)检查是否已安装主应用程序(来自解锁器应用程序的MainActivity)。 我的问题是,当check(a)成功时,check(b)没有 - checkSignatures返回-4的值。
(a)的代码(在com.myorg.myname.myapp的MainActivity中)是:
final PackageManager pkgMgr = this.getPackageManager();
final int sigMatch =
pkgMgr.checkSignatures(getApplicationContext().getPackageName(),
"com.myorg.myname.myappunlocker");
if (sigMatch == PackageManager.SIGNATURE_MATCH) {
// All OK
(b)的代码(在com.myorg.myname.myappunlocker的MainActivity中)是:
final PackageManager pkgMgr = getPackageManager();
final int sigMatch = pkgMgr.checkSignatures(this.getPackageName(),
"com.myorg.myname.myapp");
if (sigMatch == PackageManager.SIGNATURE_MATCH) {
//All is OK
这两个应用都是从同一个密钥库签名的。
任何人都可以告诉我为什么检查(b)失败,安装两个包?