如何检查已安装的应用程序是我的?

时间:2011-09-28 08:21:52

标签: android

我想发布捐赠申请(如Minimalistic Text所做)。据我所知,我可以在我的主要免费应用程序中检查这个捐赠应用程序是通过PackageManager安装的:

try
{
   ApplicationInfo info = getPackageManager()
                         .getApplicationInfo("com.myproject", 0 );
   //-- application exists
} catch(PackageManager.NameNotFoundException e) {
   //-- application doesn't exist
}

但实际上任何人都可以使用相同的包名提供自己的免费应用程序。我怎样才能收到证明该申请真的我的

1 个答案:

答案 0 :(得分:5)

如果您使用相同的密钥/证书对两个应用进行签名,则可以检查签名是否匹配。假设只有您可以访问私钥,如果它们匹配,则它是您自己的应用程序。类似的东西:

String myPackageName = application.getPackageName();
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo("com.myproject", 0);
boolean isMine = pm.checkSignatures(myPackageName, pi.packageName) == PackageManager.SIGNATURE_MATCH;