PackageManage checkSignatures只能以一种方式工作

时间:2015-02-26 12:12:04

标签: android

我正在编写一个“解锁器”应用来解锁我应用的高级功能,并使用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)失败,安装两个包?

0 个答案:

没有答案