很多小伙伴都在项目当中用到了高德,其中一个问题就是SHA1怎么获取?
这里讲一个用代码提取SHA1的方法,下面贴上代码:
/*
获取高德地图的SHA1
*/
public static String getSHA1(Context context) {
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_SIGNATURES);
byte[] cert = info.signatures[0].toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] publicKey = md.digest(cert);
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < publicKey.length; i++) {
String appendString = Integer.toHexString(0xFF & publicKey[i])
.toUpperCase(Locale.US);
if (appendString.length() == 1)
hexString.append("0");
hexString.append(appendString);
hexString.append(":");
}
String result = hexString.toString();
return result.substring(0, result.length() - 1);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
直接将上面那段代码贴到代码里面去就行了,不过要记住一点,released版本和debug版本的SHA1是不一样的,要分开获取,这一点在高德的sdk技术文档中都有说明的,我也就不多说了。