我已经做了一些调查,并在这里分享我的结果,这可能对其他人有用。

首先,我们可以检查MockSetting选项是否打开

public static boolean isMockSettingsON(Context context) { // returns true if mock location enabled, false if not enabled. if (Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0")) return false; else return true; }

其次,我们可以检查设备中是否有其他应用程序,这些应用程序正在使用android.permission.ACCESS_MOCK_LOCATION (位置欺骗应用程序)

public static boolean areThereMockPermissionApps(Context context) { int count = 0; PackageManager pm = context.getPackageManager(); List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo applicationInfo : packages) { try { PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS); // Get Permissions String[] requestedPermissions = packageInfo.requestedPermissions; if (requestedPermissions != null) { for (int i = 0; i < requestedPermissions.length; i++) { if (requestedPermissions[i] .equals("android.permission.ACCESS_MOCK_LOCATION") && !applicationInfo.packageName.equals(context.getPackageName())) { count++; } } } } catch (NameNotFoundException e) { Log.e("Got exception " , e.getMessage()); } } if (count > 0) return true; return false; }

如果上述两种方法都是正确的,那么位置可能被欺骗或伪造的可能性很大。

现在,可以通过使用位置pipe理器的API来避免欺骗。

在请求提供者(networking和GPS)的位置更新之前,我们可以移除testing提供者,

LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE); try { Log.d(TAG ,"Removing Test providers") lm.removeTestProvider(LocationManager.GPS_PROVIDER); } catch (IllegalArgumentException error) { Log.d(TAG,"Got exception in removing test provider"); } lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);

我已经看到,removeTestProvider(〜)比Jelly Bean和以后的版本工作得很好。 这个API似乎是不可靠的,直到冰淇淋三明治。

android gps 过滤,android开发分享禁用/检查模拟位置(防止GPS欺骗)相关推荐

  1. android 输入过滤,Android Studio添加日志过滤方式

    1.点击下方的 Android Monitor 2.点击右侧的选项菜单 3.点击菜单下拉列表中的 Edit Filter Configuration,打开配置界面 4.配置界面说明 第1部分是为这个过 ...

  2. android string 过滤,Android 字符串过滤器InputFilter详解

    概述 InputFilter是系统提供的一个接口,里面只有一个方法filter(),用于过滤输入/插入的字符串,返回值为CharSequence. 一般都是通过判断语句来过滤字符串,在这里 Input ...

  3. android 混淆过滤,android studio 代码混淆如何忽略第三方jar包

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 最近在打包混淆时,遇到一个问题,混淆编译都不出错,运行出错,一般遇到这种问题,肯定是在运行的地方有代码被混淆了,经过错误 ...

  4. android 图片过滤,android 图片转为bitmap,黑白镜过滤

    图片转bitmap 1.获取图片资源 Bitmap bitmap= BlackWhite(BitmapFactory.decodeResource(getResources(), R.mipmap.t ...

  5. android 意图过滤,Android 意图(Intent)及过滤器(Filter).pdf

    Android 意图(Intent)和过滤器(Filter) Android 意图(Intent)和过滤器(Filter) Android意图是⼀个要执⾏的操作的抽象描述.它可以通过 startAct ...

  6. android 来电过滤,Android实现来电挂断

    Android实现来电挂断要注意区分系统版本 Android 9.0 以后使用TelecomManager (需要权限Manifest.permission.ANSWER_PHONE_CALLS). ...

  7. android webview测速,学习分享,echarts模拟宽带测速效果 附Demo演示地址!!

    相信大家在平时的开发过程中经常会需要和图形图标打交道,最近接到一个需求,制作一个类似宽带测速的界面,要求使用仪表盘表示宽带下载速度,折线图表示上传速度并用柱状图跳动表示每一秒由客户端向各大媒体网站百度 ...

  8. android官方wifidemo,Android应用开发:连接指定Wifi的Demo分享

    本文主要向大家介绍Android应用开发,给定App相应SSID及密码,连接指定WIFI,希望对大家学习Android应用开发有所帮助. 1.MainActivity.java包含工具类WifiAdm ...

  9. Android GPS中间层驱动开发调试

    ~.Android GPS中间层驱动开发调试小结  // rkeclair_v1.02_sdkdemo , ublox芯片       调通GPS功能,用串口可打印出位置数据,并可在gpslogger ...

最新文章

  1. Gartner:2020 年 AI 平台魔力象限:意外多多
  2. Oracle数据类型简介【转贴】
  3. 杂谈人工智能说大数据
  4. 查询表空间状态,创建表空间,让表空间的大小自动扩展,删除表空间
  5. scratch做简单跑酷游戏_腾讯游戏学院专家:做一个多线程游戏框架可以多简单?...
  6. ORM for Net主流框架汇总与效率测试
  7. 【HDU 5532 Almost Sorted Array】水题,模拟
  8. 微软通信winusb —— 不再为你的usb设备编写驱动
  9. vue修改config后怎么生效_梦幻西游 金银锦盒修改后资金怎么攥 可以考虑跑商
  10. 数据库下午怎么插入_数据库性能调优大全(附某大型医院真实案例)
  11. Ubuntu中vim编辑器的常用操作
  12. GTRD:最全面的人和小鼠转录因子chip_seq数据库
  13. VB6_小林的气象类模块
  14. SwiftUI4 iOS16 新特性之 WeatherKit免费天气API使用教程(WWDC 2022教程含源码)
  15. netcore读取json文件_.Net Core读取Json配置文件
  16. [Xilinx FPGA] #4 Xilinx FPGA 芯片命名规则与查询方法
  17. 15年手持4个大厂offer的我,今天面试今日头条体无完肤
  18. linux cpu 查看微码,intel cpu微码 intel官网下的cpu微码 - 下载 - 搜珍网
  19. was compiled with optimization - stepping may behave oddly; variables may not be available.
  20. R语言并行计算beta-NTI值

热门文章

  1. 工具类的APP应该怎样运营,从这四个点切入
  2. C/C++实现球球大作战(高仿版),全源码分享带你轻松完成
  3. oracle指定版本号导出,oracle跨版本导出EXP
  4. 2020职高计算机录取分数线,成都计算机汽车职业技术学校2020年招生录取分数线...
  5. android -xmx,关于android:jvmargs = -xmx2048m dex正在处理cordova
  6. C语言动态规划法解决0/1背包问题(详细解答)
  7. 基于Python实现看图说话和微表情识别
  8. 使用IOS快捷指令打开任意支付宝小程序
  9. 网络渗透与指纹识别(信安1班 李静)
  10. jQuery实现移动端手机选择日期日历插件