Android 检测位置模拟器使用,防止应用崩溃的代码优化
以下是一段 Android 中检测有无使用位置提供者的 Java 代码,如何修改,让其在没有权限时不执行,避免应用崩溃?
@Override
public void run() {
System.out.println('noFakeLocation');
ToastUtil.showToast(mContext.get(), 'noFakeLocation');
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ContextCompat.checkSelfPermission(mContext.get(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
@SuppressLint("MissingPermission") Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
boolean isMock = location.isFromMockProvider();
if (isMock) {
// 位置来自模拟提供者
System.out.println('isMock : return true;');
//return true;
} else {
// 位置不来自模拟提供者
System.out.println('isMock : return false;');
//return false;
}
}
}
}
在代码中添加了权限检查的逻辑,使用 ContextCompat.checkSelfPermission() 方法检查是否有位置权限。如果有权限,则执行检测代码;如果没有权限,则不执行检测代码,避免应用崩溃。
原文地址: https://www.cveoy.top/t/topic/hMsT 著作权归作者所有。请勿转载和采集!