2011-09-28 106 views
3

我想发布一个捐赠刺申请(如简约文本那样)。据我了解,我可以在这个捐款应用程序是通过PackageManager安装在我的主免费的应用程序检查:如何检查已安装的应用程序是我的?

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

但实际上任何人都可以提供相同的包名自己的免费应用程序。我怎样才能得到证据证明这个应用程序真的是我的

+2

无法安装包名称已存在的应用程序作为另一个已安装的应用程序包名称。 – Rasel

回答

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; 
相关问题