Android集成百度定位踩坑及填坑记录

应项目需求,调研了市面上集中不错的定位选择,

百度地图集成成本极低,首先,它免费,官网文档清晰,demo明确,所以选定百度定位。但还是有很多坑要踩,在我集成百度地图的时候,坑也非常多,在这里,我将详述百度地图集成步骤。

一、申请平台AK
Android集成百度定位踩坑及填坑记录_第1张图片
需要开发版SHA1码 和 发布版SHA1码
用cmd 进入 .android 获取开发版
生成链接方式:
链接地址:https://blog.csdn.net/wangyonghao132/article/details/105562047
发布版也就是签名文件的SHA1
链接地址: https://blog.csdn.net/wangyonghao132/article/details/105562047

二、按照文档集成定位
点此可跳入开发者文档

三、遇到问题(记录下来留作无稽之谈并分享方便各位新晋采坑小伙伴借鉴,可避免少量头疼)

1、按照文档集成之后定位经纬度一直是 4.9E-324
解决方法在main下新建文件夹 jniLibs 将jar包以外的文件导入 定位成功
Android集成百度定位踩坑及填坑记录_第2张图片
2、定位成功之后 部分属性又一直是空

例如 addr 一直是空 获取不到定位的地址信息
解决方法 在初始化中添加 :

option.setIsNeedAddress(true);

3、定位4.9E-324 和系统权限有关

注意应用权限和系统权限的分别判断
判断系统权限gps是否打开的方法

//判断gps是否处于打开状态
public boolean isOpen(Context mContext) {
    if (Build.VERSION.SDK_INT <19) {
        LocationManager myLocationManager = (LocationManager  )mContext.getSystemService(Context.LOCATION_SERVICE);
        return myLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    }else{
        int state = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF);
        if(state==Settings.Secure.LOCATION_MODE_OFF){
            return false;
        }else{
            return true;
        }
    }
}

true打开 false未打开 若未打开则去打开,跳转方法如下

startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));

应用的定位权限用你的工具类判断

Manifest.permission.ACCESS_FINE_LOCATION

若是未开前去开启就OK

你可能感兴趣的:(Android集成百度定位踩坑及填坑记录)