以下是一段安卓中检测有无使用位置提供者的java代码如何修改让其在没有权限时不执行避免应用崩溃import androidxcorecontentContextCompat与import androidsupportv4appContextCompat;不可用 Override public void run LocationManager lo
要在没有权限时不执行该代码段,可以在代码中添加权限检查的逻辑。首先,在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
然后,在代码中添加权限检查的逻辑,例如:
@Override
public void run() {
if (ContextCompat.checkSelfPermission(mContext.get(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// 没有位置权限,不执行代码
return;
}
LocationManager locationManager = (LocationManager) mContext.get().getSystemService(Context.LOCATION_SERVICE);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
boolean isMock = location.isFromMockProvider();
if (isMock) {
ToastUtil.showToast(mContext.get(), "FakeLocation!");
// 位置来自模拟提供者
//System.out.println(""+"isMock : return true;");
//return true;
} else {
// 位置不来自模拟提供者
//System.out.println(""+"isMock : return false;");
//return false;
}
}
}
这样,在没有位置权限时,代码将直接返回,避免应用崩溃。
原文地址: https://www.cveoy.top/t/topic/jbJ3 著作权归作者所有。请勿转载和采集!