700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android gps 过滤 android开发分享禁用/检查模拟位置(防止GPS欺骗)

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

时间:2019-10-20 22:58:00

相关推荐

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

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

首先,我们可以检查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似乎是不可靠的,直到冰淇淋三明治。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。