feat(gpsrelaysentinel): 升级为始终允许GPS监听权限申请
- 添加ACCESS_BACKGROUND_LOCATION权限声明 - 在Android Q及以上版本申请后台位置权限 - 权限检查包含后台位置权限验证 - 权限申请时根据系统版本动态添加后台位置权限
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
|
||||
<application
|
||||
|
||||
@@ -55,16 +55,29 @@ public class MainActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private boolean hasLocationPermission() {
|
||||
return checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|
||||
boolean hasBasic = checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|
||||
|| checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
||||
if (hasBasic && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
|
||||
return checkSelfPermission(android.Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
||||
}
|
||||
return hasBasic;
|
||||
}
|
||||
|
||||
private void requestLocationPermission() {
|
||||
String[] permissions = new String[] {
|
||||
android.Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_COARSE_LOCATION
|
||||
};
|
||||
requestPermissions(permissions, REQUEST_LOCATION_PERMISSION);
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
|
||||
String[] permissions = new String[] {
|
||||
android.Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_COARSE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_BACKGROUND_LOCATION
|
||||
};
|
||||
requestPermissions(permissions, REQUEST_LOCATION_PERMISSION);
|
||||
} else {
|
||||
String[] permissions = new String[] {
|
||||
android.Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_COARSE_LOCATION
|
||||
};
|
||||
requestPermissions(permissions, REQUEST_LOCATION_PERMISSION);
|
||||
}
|
||||
}
|
||||
|
||||
private void startService() {
|
||||
|
||||
Reference in New Issue
Block a user