集成地圖的時候需要獲取sha1 的值,非常繁瑣,因爲不同的項目SHA1的值是不同的,但是是可以使用相同的SHA1 的值的。
1.先看看怎麼獲取SHA1 的值:官網的教程要在android studio 的terminal 裏面執行一串操作,但是這種指令如果執行不下去、遇到問題很難排查:https://lbs.amap.com/cooperation/technical_advisory/?tab=2
publicstatic String sHA1(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);
}
return hexString.toString();
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
上面這段代碼出自高德官網,無需繁瑣的操作!
2.n 個項目使用同一個SHA1,其實就是共用一個簽名文件,簽名文件裏面包含了 SHA1 的信息
1):dos命令定位到.jks文件下。
2):輸入命令:keytool -v -list -keystore keystore.jks【一定要記得加上 -v 參數,不然只能看到SHA1,沒有MD5】【keystore.jks,需要替換爲你自己的密鑰所在路徑和文件名】
3.項目裏面配置簽名文件:
其他的按照提示無腦填寫就好了