在运行时为Android检索apk签名

有没有办法在运行时检索有关apk签名的信息?

例如,我有相同的应用程序签名2个不同的签名:app-1.apk和app-2.apk,我希望能够在运行时区分两个apk.那可能吗?

我的目标是使用外部服务器并基于应用程序的版本代码和签名来实现许可系统.

解决方法

您可以使用PackageManager访问apk签名.
Package Manager中定义的PackageInfo标志返回有关包中包含的签名的信息.
Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(),PackageManager.GET_SIGNATURES).signatures;    
for (Signature sig : sigs)
{
    Log.i("App","Signature : " + sig.hashCode());
}

http://developer.android.com/reference/android/content/pm/PackageManager.html

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...