Android 6.0 以下:使用 Settings.Secure.ALLOW_MOCK_LOCATION判断。

// Android 6.0 以下:是否开启【允许模拟位置】
boolean canMockPosition = Settings.Secure.getInt(getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0
Android 6.0 及以上:没有【允许模拟位置】选项,同时弃用了Settings.Secure.ALLOW_MOCK_LOCATION,无法通过上面的方法判断。增加了【选择模拟位置信息应用】的方法,需要选择使用模拟位置的应用。但是不知道怎么获取当前选择的应用,因此通过是否能够成功执行addTestProvider方法来进行判断,如果没有选择当前的应用,则addTestProvider会抛出异常。网上的方法不对,自己在这里做了更正
/**
* 判断是否打开了允许虚拟位置,android6.0以下及以上都可用
*
* @return boolean
*/
public static boolean isAllowMockLocation() {
boolean canMockPosition = false;
if (Build.VERSION.SDK_INT <= 22) {//6.0以下
canMockPosition = (Settings.Secure.getInt(Context.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
} else {
try {
LocationManager locationManager = (LocationManager) Context.getSystemService(Context.LOCATION_SERVICE);//获得LocationManager引用
String providerStr = LocationManager.GPS_PROVIDER;
LocationProvider provider = locationManager.getProvider(providerStr);
if (provider != null) {
locationManager.addTestProvider(
provider.getName()
, provider.requiresNetwork()
, provider.requiresSatellite()
, provider.requiresCell()
, provider.hasMonetaryCost()
, provider.supportsAltitude()
, provider.supportsSpeed()
, provider.supportsBearing()
, provider.getPowerRequirement()
, provider.getAccuracy());
} else {
locationManager.addTestProvider(
providerStr
, true, true, false, false, true, true, true
, Criteria.POWER_HIGH, Criteria.ACCURACY_FINE);
}
locationManager.setTestProviderEnabled(providerStr, true);
locationManager.setTestProviderStatus(providerStr, LocationProvider.AVAILABLE, null, System.currentTimeMillis());
// 模拟位置可用
canMockPosition = true;
} catch (SecurityException e) {
canMockPosition = false;
}
}
return canMockPosition;
}

android6.0以上模拟位置状态检测相关推荐

  1. android6.0麦克风权限,android 6.0权限检测以及6.0以下,麦克风、相机权限判断

    android 6.0以上权限 android 6.0以上权限,我是通过PermissionsDispatcher进行申请,操作的,具体使用方法,见PermissionsDispatcher,Andr ...

  2. Android6.0以上应用在长时间在后台,因为内存不足导致系统回收内存,当再次启动应用出现Fragment重叠或者空白、异常解决方案(提供模拟内存不足导致系统回收内存的方案)。

    Android6.0以上应用在长时间在后台,因为内存不足导致系统回收内存,当再次启动应用出现Fragment重叠或者空白解决方案. 首先提供一个方法模拟内存不足导致系统回收内存的方案: 打开Andro ...

  3. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

    1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...

  4. android6.0 设为只充电模式,Android6.0空闲状态下低电耗模式

    延长设备的电池寿命.降低内存使用率以及提升应用性能,Android N 对系统行为做出了一些变更.这些变更可能会影响系统资源和系统通知对应用的可用性. Android 6.0新特性锁屏下语音搜索 用户 ...

  5. Android6.0的Looper源码分析(1)

    1      Looper简介 Android在Java标准线程模型的基础上,提供了消息驱动机制,用于多线程之间的通信.而其具体实现就是Looper. Android Looper的实现主要包括了3个 ...

  6. 探讨Android6.0及以上系统APP常驻内存(保活)实现-争宠篇

    探讨Android6.0及以上系统APP常驻内存(保活)实现-争宠篇 (转载请声明出处:http://blog.csdn.net/andrexpert/article/details/75045678 ...

  7. 如何从 0 到 1 搭建性能检测系统

    ????  这是第 74 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧- 本文首发于政采云前端团队博客:如何从 0 到 1 搭建性能检测系统 https://www.zo ...

  8. 如何从 0 到 1 搭建性能检测系统(修正版)

    前言 前端页面性能对用户留存.用户直观体验有着重要影响,当页面加载时间超过 2 秒后,加载时间每增加一秒,就会有大量的用户流失,所以做好页面性能优化,无疑对网站来说是一个非常重要的步骤. 那如何才能知 ...

  9. 脑机接口应用于驾驶员的疲劳状态检测综述

    今天Rose分享一篇伍冬睿教授的关于驾驶员疲劳状态检测综述,主要包括非接触式例如计算机视觉以及接触式包括脑电等在驾驶员的疲劳状态检测! 伍教授在机器学习.脑机接口方向做了很多探索,包括集成学习方法.脑 ...

  10. 《笑傲网湖》第五回 状态检测防火墙

    今天,我们进行状态检测防火墙的原理介绍.同时附送网络地址转换原理的简单介绍! 随着华山派的不断扩大,整个内部网络也越来越庞大.每天都有大量的数据与外界交互,处于网关处的防火墙要处理的数据包越来越多,虽 ...

最新文章

  1. Mysql高级调优篇——前言简介
  2. Java:Object.hashCode()和System.identityHashCode()的区别
  3. 深入浅出mfc学习笔记——六大关键技术之仿真_运行时和动态创建
  4. html5+CSS3实现的炫酷超链接特效
  5. 兰山天书(贺兰山岩画)
  6. 前端怎样在浏览器上调整样式找到style来源
  7. C#类类型“.NET技术”
  8. cassandra生产监控_碎玻璃:诊断生产Cassandra问题
  9. 重磅︱R+NLP:text2vec包——New 文本分析生态系统 No.1(一,简介)
  10. 10. Browser 对象 - Location 对象(2)
  11. arduino如何驱动1602显示器?(使用arduino内置LiquidCrystal库)
  12. 业务流程图和数据流程图、流程图
  13. ide中tomcat乱码_彻底解决Intellij IDEA中文乱码问题(亲测成功)
  14. fieldtrip学习——1.坐标系介绍(ctf坐标系和acpc坐标系简介)
  15. 6开机白苹果一闪一灭_我的苹果6p突然死机,一直出现白苹果又黑屏,反复出现,无法开机,请...
  16. 干货 | 如何确定是否属于关键信息基础设施?
  17. python继承和多态心得_python学习第十五天 -面向对象之继承和多态
  18. Unsplash能找到很多免费无版权图片
  19. python用爬虫制作英汉词典
  20. NCE4 L3 Matterhorn man

热门文章

  1. 桥本分数式-DFS法-Java
  2. <论文阅读> M2BEV Multi-Camera Joint 3D Detection and Segmentation with Unified Bird’s-Eye View Represen
  3. python | 秦九昭算法详细介绍
  4. 评价指标 | ROC曲线和AUC面积理解
  5. 华为模拟器eNSP防火墙配置vlan实验
  6. g++ warn_unused_result
  7. 一个茴字有三种写法——吐槽C#9.0的Records
  8. 国家统计局拟用大数据预测房价走势
  9. 手机怎么打开谷歌官网页服务器地址,google手机地图打不开了的解决方法
  10. 360Win10的360wifi无速度问题