Handle permissions on old Android

Этот коммит содержится в:
Anton Tananaev
2015-09-03 10:40:24 +12:00
родитель 96d9127a4a
Коммит dc949e0152
+10 -3
Просмотреть файл
@@ -69,13 +69,20 @@ public class MainActivity extends PreferenceActivity implements OnSharedPreferen
} }
} }
private boolean hasPermission(String permission) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) {
return true;
}
return checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED;
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
sharedPreferences.registerOnSharedPreferenceChangeListener(this); sharedPreferences.registerOnSharedPreferenceChangeListener(this);
if (!sharedPreferences.contains(KEY_DEVICE)) { if (!sharedPreferences.contains(KEY_DEVICE)) {
if (checkSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { if (hasPermission(Manifest.permission.READ_PHONE_STATE)) {
initDeviceId(true); initDeviceId(true);
} else { } else {
requestPermissions(new String[] { Manifest.permission.READ_PHONE_STATE }, PERMISSIONS_REQUEST_DEVICE); requestPermissions(new String[] { Manifest.permission.READ_PHONE_STATE }, PERMISSIONS_REQUEST_DEVICE);
@@ -152,10 +159,10 @@ public class MainActivity extends PreferenceActivity implements OnSharedPreferen
private void startTrackingService(boolean checkPermission, boolean permission) { private void startTrackingService(boolean checkPermission, boolean permission) {
if (checkPermission) { if (checkPermission) {
Set<String> missingPermissions = new HashSet<String>(); Set<String> missingPermissions = new HashSet<String>();
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { if (!hasPermission(Manifest.permission.ACCESS_FINE_LOCATION)) {
missingPermissions.add(Manifest.permission.ACCESS_FINE_LOCATION); missingPermissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
} }
if (checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { if (!hasPermission(Manifest.permission.ACCESS_COARSE_LOCATION)) {
missingPermissions.add(Manifest.permission.ACCESS_COARSE_LOCATION); missingPermissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
} }
if (missingPermissions.isEmpty()) { if (missingPermissions.isEmpty()) {