我想发布捐赠申请(如Minimalistic Text所做)。据我所知,我可以在我的主要免费应用程序中检查这个捐赠应用程序是通过PackageManager安装的:
try
{
ApplicationInfo info = getPackageManager()
.getApplicationInfo("com.myproject", 0 );
//-- application exists
} catch(PackageManager.NameNotFoundException e) {
//-- application doesn't exist
}
但实际上任何人都可以使用相同的包名提供自己的免费应用程序。我怎样才能收到证明该申请真的我的?
答案 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;