android 定位遇见的狗血问题

android 使用百度定位,出现在某种大屏机器上,一直定位不到。开始一直以为是android 版本引起的代码问题,查看百度文档发现并不是代码问题。用百度官方定位demo (https://mapopen-pub-androidsdk.cdn.bcebos.com/demo%2Fapp-release.apk)定位不到,错误码 62,然后用高德地图官方demo (https://lbs.amap.com/dev/ref/qrcode?target=http://a.amap.com/lbs/static/apk/android-once-continue-location.apk)也是定位不到,错误码 13。反思最终结论应该不是代码问题,只有是机器问题。后来发现连接网线定位不到,连接 wifi 却是可以定位到。由此想到,定位分 : 网络定位,GPS定位, 基站定位(手机卡)。这个机器肯定是没有基站定位的,现在看有没有 GPS 模块,还有判断 GPS 是否打开。

 

判断设备是否有GPS模块

 public boolean hasGPSDevice(Context context){
        LocationManager mgr = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
        if ( mgr == null )
            return false;
        final List<String> providers = mgr.getAllProviders();
        if ( providers == null )
            return false;
        return providers.contains(LocationManager.GPS_PROVIDER);
    }

判断GPS 是否打开

​

  LocationManager locationManager = (LocationManager)
                context.getSystemService(Context.LOCATION_SERVICE);
        boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
​

判断网络定位是否打开

boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

providers 里包含所有本设备支持的定位服务,断点发现大屏设备里只有有网络定位 服务 network 和一个默认值  passive 。大屏设备只支持网络定位,连接网线时 netWork 还是 false,

只有连接 wifi 时才为 true 。由此才想到网络定位 :只有 wifi 定位 和 手机自身网络,网线是不支持的,这个网线位置信息是网络隐私信息(被工信部管制)。在此小记踩坑,希望后来者跨坑!以后遇见此类问题,有个解决方案。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值