接入第三方往往需要用到签名和包名,以前都是命令行获取,这里分享下代码直接获取的方式

原文:高德地图API
https://lbs.amap.com/faq/android/map-sdk/create-project/46723/
命令行获取:
https://lbs.amap.com/faq/android/map-sdk/create-project/43112/
在这里插入图片描述


public static String getSHA1(Context context) {
    return getSign(context, "SHA1");
}
public static String getMD5(Context context) {
    return getSign(context, "MD5");
}
public static String getSHA256(Context context) {
    return getSign(context, "SHA256");
}
  //代码获取sha1值
    private static String getSign(Context context, String algorithm) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo(
                    context.getPackageName(), PackageManager.GET_SIGNATURES);
            byte[] cert = info.signatures[0].toByteArray();
            MessageDigest md = MessageDigest.getInstance(algorithm);
            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 (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐