0
当用户的设备低于18 API时,是否有防止欺骗位置的方法?
防止欺骗位置
我一直在使用下面的代码尝试,但它不工作,当用户有:
1.在设置(如果没有暂停启用Android的设置和活动的假GPS
2.禁用模拟位置模拟位置/停止假的GPS应用) - >在这种情况下我的应用程序仍然是假的位置。
我的代码:
if (isGPSEnabled) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location != null){
if(android.os.Build.VERSION.SDK_INT >= 18)
isMock = location.isFromMockProvider();
else
isMock = !Settings.Secure.getString(mContext.getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0");
if(!isMock){
latitude = location.getLatitude();
longitude = location.getLongitude();
prefs.setMockProvider(false);
}else{
prefs.setMockProvider(true);
}
}
}
}