From dc949e0152299bb9fe406efc738c4dfea0bd0198 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Thu, 3 Sep 2015 10:40:24 +1200 Subject: [PATCH] Handle permissions on old Android --- .../main/java/org/traccar/client/MainActivity.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/traccar/client/MainActivity.java b/app/src/main/java/org/traccar/client/MainActivity.java index 1869519..f247430 100644 --- a/app/src/main/java/org/traccar/client/MainActivity.java +++ b/app/src/main/java/org/traccar/client/MainActivity.java @@ -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 protected void onResume() { super.onResume(); sharedPreferences.registerOnSharedPreferenceChangeListener(this); if (!sharedPreferences.contains(KEY_DEVICE)) { - if (checkSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { + if (hasPermission(Manifest.permission.READ_PHONE_STATE)) { initDeviceId(true); } else { 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) { if (checkPermission) { Set missingPermissions = new HashSet(); - if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + if (!hasPermission(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); } if (missingPermissions.isEmpty()) {