Android 解决高德地图签名后无法定位的问题
2017-08-30 10:46
1096 查看
前一段时间,我做了一个关于地图的应用,调试的时候一切正常,签名后就无法正常定位。刚开始以为是6.0动态权限问题改变的原因,应用的调试版本和签名后的版本SHA1值是不同的,而在平台上只用了调试版本的SHA1,所以导致签名的应用版本无法正常使用。
那怎么修改呢?
首先我们看一下高德开发平台上的应用配置中的Key
那怎么修改呢?
首先我们看一下高德开发平台上的应用配置中的Key
这里是可以填两个SHA1值的,为了保证调试和签名版本都能正常运行,第一个可以填写签名版本的SHA1值,第二个还是填写调试版本的SHA1 会遇见这个问题的人,估计调试版本的SHA1都知道了,但是可能不知道怎么获取签名版本后的SHA1 按照平台提供的方法可以通过下面这个函数进行Log打印,打印后再将这个值设置上去,应用就能正常使用了。
public static 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); hexString.append(":"); } String result = hexString.toString(); return result.substring(0, result.length()-1); } catch (NameNotFoundException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; }
相关文章推荐
- 解决使用 JDK 1.7 对 Android apk 签名后程序无法安装的问题
- 解决Android下Google Maps无法通过GSM基站定位问题
- 如何集成android微信支付及各种问题(-1,签名错误,无法获得预支付id)的解决办法。
- 【解决】appium测试时,popupwindow元素控件无法定位的问题【Android】
- 【解决】appium测试时,popupwindow元素控件无法定位的问题【Android】
- Android关于WebView中无法定位的问题解决
- Fragment中百度地图API解决 android 6.0无法定位的问题,一片蓝色,返回4.9E-324
- app打包后高德地图无法定位问题解决
- 关于Android高德地图4.12无法显示地图只显示Logo问题,非只添加 jniLibs.srcDirs = ['libs']就解决的
- Android使用WebView无法定位问题的解决方法
- 解决使用 JDK 1.7 对 Android apk 签名后程序无法安装的问题
- 如何在ubuntu10.04下载android4.0的源码(并解决以往无法下载android源码的问题)
- Android项目在eclipse中无法打包apk文件[bin目录下没生成apk文件]问题解决
- 解决android某些应用开发某些类无法解析/找到的问题--使用android隐藏类的方法
- 解决Android服务器端页面header无法跳转问题
- 解决2.3机型无法定位问题
- 解决Android源码编译后网页中无法正确显示GIF图片的问题
- (转载)解决Android下Wap模式无法访问网络的问题
- Foxmail因IE9兼容问题无法编辑签名的解决办法
- 缺少公钥问题的解决方法(gpg: 无法检查签名:找不到公钥)