80,362
社区成员
发帖
与我相关
我的任务
分享
第一种方法:
String A=ToolsUtils.getSign2(getBaseContext(), "a.b");
public static String getSign2(Context context, String packageName) {
Signature[] signs = getRawSignature(context, packageName);
if ((signs == null) || (signs.length == 0)) {
return null;
} else {
Signature sign = signs[0];
String signMd5 = md5(sign.toByteArray());
return signMd5;
}
}
第二种方法:
String B= getSignMd5Str();
public String getSignMd5Str() {
try {
PackageInfo packageInfo = a.this.getPackageManager().getPackageInfo(a.this.getPackageName(), PackageManager.GET_SIGNATURES);
android.content.pm.Signature[] signs = packageInfo.signatures;
android.content.pm.Signature sign = signs[0];
String signStr = encryptionMD5(sign.toByteArray());
return signStr;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "";
}
第三种方法:
byte[] signature = getSign(a.this);
private byte[] getSign(Context context) {
PackageManager pm = context.getPackageManager();
List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_SIGNATURES);
Iterator<PackageInfo> iter = apps.iterator();
while (iter.hasNext()) {
PackageInfo info = iter.next();
String packageName = info.packageName;
//按包名读取签名
if (packageName.equals("a.b")) {
return info.signatures[0].toByteArray();
}
}
return null;
}