Android真机测试使用百度地图定位到非洲附近的的问题

我用的是自个8.0的手机,我碰到的是动态权限问题,AndroidManifest里面权限都加了,输出日志得到的经纬度如
代码
//经纬度对象5/11
LatLng ll = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude());
Log.i(TAG, "经纬度LatLng:" + ll);
结果为:4.9E-324,4.9E-324,脸黑非洲附近,哈哈哈

上代码,如下代码贴在要使用定位之前就行了

//监听授权
List<String> permissionList=new ArrayList<>();
if (ContextCompat.checkSelfPermission(BaiduMapT1.this, Manifest.
        permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
    permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
if (ContextCompat.checkSelfPermission(BaiduMapT1.this, Manifest.
        permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED){
    permissionList.add(Manifest.permission.READ_PHONE_STATE);
}
if (ContextCompat.checkSelfPermission(BaiduMapT1.this, Manifest.
        permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
    permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (!permissionList.isEmpty()){
    String[] permissions=permissionList.toArray(new String[permissionList.size()]);
    ActivityCompat.requestPermissions(BaiduMapT1.this,permissions,1);
}else {
    initLocation();
   // requestLocation();

}

//下面这行是开启定位方法,上面代码是重点

public void initLocation() {
    // 定位选项
    LocationClientOption option = new LocationClientOption();
    option.setCoorType("bd09ll");
    // 设置是否需要地址信息,默认为无地址
    option.setIsNeedAddress(true);
    option.setIsNeedLocationDescribe(true);
    option.setIsNeedLocationPoiList(true);
    option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
    option.setOpenGps(true);
    option.setScanSpan(1000);
    mLocClient.setLocOption(option);
    mLocClient.start();
}
百度地图

猜你喜欢

转载自blog.csdn.net/weixin_41272626/article/details/80284663