From 886b5a36c0d156997438a5599a5acf9bab999ed3 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 20 Nov 2018 14:31:33 +0100 Subject: [PATCH] Android 9 requires a new permission for foreground services --- app/src/main/java/org/linphone/LinphoneService.java | 1 - .../org/linphone/activities/LinphoneActivity.java | 13 ++++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneService.java b/app/src/main/java/org/linphone/LinphoneService.java index c2e4a31f2..5634a311d 100644 --- a/app/src/main/java/org/linphone/LinphoneService.java +++ b/app/src/main/java/org/linphone/LinphoneService.java @@ -356,7 +356,6 @@ public final class LinphoneService extends Service { } } - Intent missedCallNotifIntent = new Intent(LinphoneService.this, incomingReceivedActivity); missedCallNotifIntent.putExtra("GoToHistory", true); PendingIntent intent = PendingIntent.getActivity(LinphoneService.this, 0, missedCallNotifIntent, PendingIntent.FLAG_UPDATE_CURRENT); diff --git a/app/src/main/java/org/linphone/activities/LinphoneActivity.java b/app/src/main/java/org/linphone/activities/LinphoneActivity.java index e429dca3d..2aa9da1ef 100644 --- a/app/src/main/java/org/linphone/activities/LinphoneActivity.java +++ b/app/src/main/java/org/linphone/activities/LinphoneActivity.java @@ -1315,6 +1315,8 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick protected void onStart() { super.onStart(); ArrayList permissionsList = new ArrayList<>(); + permissionsList.add(Manifest.permission.SYSTEM_ALERT_WINDOW); // This one is to allow floating notifications + permissionsList.add("android.permission.FOREGROUND_SERVICE"); // Manifest.permission.FOREGROUND_SERVICE, required starting Android 9 to be able to start a foreground service int contacts = getPackageManager().checkPermission(Manifest.permission.READ_CONTACTS, getPackageName()); Log.i("[Permission] Contacts permission is " + (contacts == PackageManager.PERMISSION_GRANTED ? "granted" : "denied")); @@ -1326,19 +1328,22 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick Log.i("[Permission] Read external storage for ring tone permission is " + (ringtone == PackageManager.PERMISSION_GRANTED ? "granted" : "denied")); if (ringtone != PackageManager.PERMISSION_GRANTED) { - if (LinphonePreferences.instance().firstTimeAskingForPermission(Manifest.permission.READ_EXTERNAL_STORAGE) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { + if (LinphonePreferences.instance().firstTimeAskingForPermission(Manifest.permission.READ_EXTERNAL_STORAGE) + || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { Log.i("[Permission] Asking for read external storage for ring tone"); permissionsList.add(Manifest.permission.READ_EXTERNAL_STORAGE); } } if (readPhone != PackageManager.PERMISSION_GRANTED) { - if (LinphonePreferences.instance().firstTimeAskingForPermission(Manifest.permission.READ_PHONE_STATE) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) { + if (LinphonePreferences.instance().firstTimeAskingForPermission(Manifest.permission.READ_PHONE_STATE) + || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) { Log.i("[Permission] Asking for read phone state"); permissionsList.add(Manifest.permission.READ_PHONE_STATE); } } if (contacts != PackageManager.PERMISSION_GRANTED) { - if (LinphonePreferences.instance().firstTimeAskingForPermission(Manifest.permission.READ_CONTACTS) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) { + if (LinphonePreferences.instance().firstTimeAskingForPermission(Manifest.permission.READ_CONTACTS) + || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) { Log.i("[Permission] Asking for contacts"); permissionsList.add(Manifest.permission.READ_CONTACTS); } @@ -1348,8 +1353,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick ContactsManager.getInstance().fetchContactsAsync(); } } - // This one is to allow floating notifications - permissionsList.add(Manifest.permission.SYSTEM_ALERT_WINDOW); if (permissionsList.size() > 0) { String[] permissions = new String[permissionsList.size()];