android6.0以上模拟位置状态检测
来源:互联网 发布:在线数字抽奖软件 编辑:程序博客网 时间:2024/06/05 18:05
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; }
阅读全文
0 0
- android6.0以上模拟位置状态检测
- Android6.0以上权限检查
- Android6.0以上权限申请
- android6.0以上特殊权限
- Android6.0以上权限申请
- android6.0以上版本动态获取权限
- android6.0以上动态申请权限问题。
- [Android开发] Android6.0以上权限总结
- android6.0以上权限申请工具类
- Android6.0以上,动态权限申请
- android6.0以上权限动态请求实现
- Android6.0以上悬浮窗崩掉的问题
- android6.0以及以上的权限处理
- Android6.0以上权限相关Util
- Android6.0以上版本打电话获取权限
- android6.0以上版本蓝牙4.0开发
- Android6.0以上弹框获取权限
- Android6.0以上获取相关权限
- openwrt 编译内核模块中的配置问题
- 解决maven打包Mark invalid异常
- 递归---算法
- DirectX入门之快速开发框架
- AsyncTask基础运用(请求网络)
- android6.0以上模拟位置状态检测
- 表格标签
- 异常
- <p>标签为何不可以包含<div>标签
- Android App将数据写入内部存储和外部存储的示例
- oracle的基本术语
- Tomact端口被占用的解决方案
- 草稿一
- 深度学习_卷积神经网络CNN