diff --git a/src/android/org/linphone/ContactsManager.java b/src/android/org/linphone/ContactsManager.java index 25d4b956b..a11085162 100644 --- a/src/android/org/linphone/ContactsManager.java +++ b/src/android/org/linphone/ContactsManager.java @@ -19,7 +19,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. package org.linphone; -import android.*; import android.Manifest; import android.accounts.Account; import android.accounts.AccountManager; @@ -176,13 +175,8 @@ public class ContactsManager extends ContentObserver { return false; boolean contactsR = (PackageManager.PERMISSION_GRANTED == context.getPackageManager().checkPermission(android.Manifest.permission.READ_CONTACTS, context.getPackageName())); - boolean contactsW = true; context.getPackageManager(); - if (Version.sdkAboveOrEqual(Version.API26_O_80)) { - contactsW = (PackageManager.PERMISSION_GRANTED == - context.getPackageManager().checkPermission(Manifest.permission.WRITE_CONTACTS, context.getPackageName())); - } - return contactsW && contactsR && !context.getResources().getBoolean(R.bool.force_use_of_linphone_friends); + return contactsR && !context.getResources().getBoolean(R.bool.force_use_of_linphone_friends); } public void setLinphoneContactsPrefered(boolean isPrefered) { diff --git a/src/android/org/linphone/LinphoneService.java b/src/android/org/linphone/LinphoneService.java index ad9f5ec3f..9fdf5aa8c 100644 --- a/src/android/org/linphone/LinphoneService.java +++ b/src/android/org/linphone/LinphoneService.java @@ -431,8 +431,10 @@ public final class LinphoneService extends Service { Log.e(e, "Couldn't find startForeground or stopForeground"); } - - getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, ContactsManager.getInstance()); + if (!Version.sdkAboveOrEqual(Version.API26_O_80) + || (ContactsManager.getInstance() != null && ContactsManager.getInstance().hasContactsAccess())) { + getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, ContactsManager.getInstance()); + } if (displayServiceNotification()) { startForegroundCompat(NOTIF_ID, mNotif);