判断定位服务是否开启(手机上位置信息按钮开关)
2017-05-15 17:48
861 查看
今天遇到vivoX6手机 定位服务在没有开启的情况下返回的也是开启的,打印log竟然是true;
反复思考查找后,最后发现判断代码是有问题的。
之前一直用判断GPS和网络情况,来判断定位服务:
发现这种方式在一部分手机上是存在问题的,不是解决问题的关键;
经过同事分析他之前写的代码,测试发现可行
这种方式才是解决 判断定位服务按钮是否开启的源码,经测试 可行,如后续遇到问题 会继续更新。。。
反复思考查找后,最后发现判断代码是有问题的。
之前一直用判断GPS和网络情况,来判断定位服务:
/** * 判断GPS是否开启,GPS或者AGPS开启一个就认为是开启的 * * @param * @return true 表示开启 */ public static final boolean isOPen(final Context context) { LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); // 通过GPS卫星定位,定位级别可以精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快) boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); // 通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位) boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (gps || network) { return true; } return false; }
发现这种方式在一部分手机上是存在问题的,不是解决问题的关键;
经过同事分析他之前写的代码,测试发现可行
/** * 判断定位服务是否开启 * * @param * @return true 表示开启 */ public boolean isLocationEnabled() { int locationMode = 0; String locationProviders; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { try { locationMode = Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE); } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); return false; } return locationMode != Settings.Secure.LOCATION_MODE_OFF; } else { locationProviders = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); return !TextUtils.isEmpty(locationProviders); } }
这种方式才是解决 判断定位服务按钮是否开启的源码,经测试 可行,如后续遇到问题 会继续更新。。。
相关文章推荐
- 判断APP用户手机是否开启了定位服务
- 判断APP用户手机是否开启了定位服务
- iOS 判断当前APP是否开启定位服务,未开通点击确定进入设置里进行设置
- iOS开发 判断用户是否开启了定位服务
- Android笔记之高德地图定位(通过开启服务发送广播用handle消息机制更新位置信息)
- 判断是否开启定位服务的方法
- IOS 判断定位服务是否开启代码
- 【Android小知识点】判断手机是否开启了模拟位置
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- Android高手进阶教程(十八)之---列出Android设备中所有启动的服务,及判断某个服务是否开启!
- ios 里如何判断当前应用的定位服务是否可用
- (转)列出Android设备中所有启动的服务,及判断某个服务是否开启!
- Android----列出设备中所有启动的服务,及判断某个服务是否开启(服务状态)!
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- 如何判断应用是否允许开启定位
- Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
- 判断用户是否开启定位功能 / 判断用户是否为应用程序开启定位功能
- JS 判断 Radio 单选按钮是否为选中状态 并弹出 值信息
- Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
- ios 里如何判断当前应用的定位服务是否可用