百度定位一直出现4.9E -324,并且locType=62

本文解决了一个常见问题,即在Android集成百度地图时,定位经纬度显示为4.9E-324的问题。通过在Android6.0以上的设备上添加READ_PHONE_STATE权限并动态申请ACCESS_FINE_LOCATION权限,成功解决了定位异常。文章提供了动态申请权限的代码示例。

最近在做Android集成百度地图,定位的时候发现拿到的经纬度一直是4.9E - 324 ,并且locType=62,拿着这个状态码去开放平台查了一圈无果,最后在茫茫百度中找到答案,Android6.0以上需要在配置文件中 加入这个权限:<uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> 并且在代码中要动态申请权限。基本配置按照开放平台配置即可,最后代码中加入权限申请模块,问题解决。
下面附动态申请权限代码块:

 private void getPermissionMethod() {
        //授权列表
        List<String> permissionList = new ArrayList<>();

        //检查是否获取该权限 ACCESS_FINE_LOCATION
        if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
            permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);
        }

        if (!permissionList.isEmpty()){ //权限列表不是空
            String[] permissions = permissionList.toArray(new String[permissionList.size()]);
            //动态申请权限的请求
            ActivityCompat.requestPermissions(MainActivity.this,permissions,1);
        }
    }

    /**
     * 监听用户是否授权
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case 1:
                if(grantResults.length>0){
                    for (int result:grantResults){
                        if (result != PackageManager.PERMISSION_GRANTED){
                            //拒绝获取权限
//                            Toast.makeText(this, "必须统一所有权限才能使用本程序", Toast.LENGTH_SHORT).show();
//                            finish();
//                            return;
                        }
                    }
                }
                break;
            default:
                break;
        }
    }

调用getPermissionMethod() 方法即可申请权限获取,最终拿到定位经纬度
注意:以真机测试结果为准

参考:
百度地图定位SDK API
https://www.cnblogs.com/Code-Maniac/p/8568906.html
https://blog.youkuaiyun.com/qq_38340601/article/details/87169493

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值