Во время работы над приложением для Android мне необходимо предоставить разрешение на чтение/запись для контактов и профиля. Я обнаружил, что файл манифеста Android имеет возможные разрешения, например,
<uses-permission android:name = "android.permission.READ_CONTACTS"/>
<uses-permission android:name = "android.permission.WRITE_CONTACTS"/>
<uses-permission android:name = "android.permission.READ_PROFILE"/>
<uses-permission android:name = "android.permission.WRITE_PROFILE"/>
И я могу показать разрешение выполнения запроса для контактов, т.е.
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
Однако, когда я помещаю код ниже, он говорит, что READ_PROFILE не найден.
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_PROFILE},
MY_PERMISSIONS_REQUEST_READ_PROFILE);
Как я могу запросить разрешение на чтение/запись профиля. Я использую,
Intent intent = new Intent(Intent.ACTION_EDIT, ContactsContract.Profile.CONTENT_URI);
MainActivity.this.startActivity(intent);
Но после редактирования информации профиля, когда я сохраняю, он не обновляет профиль, а показывает тост, например,
Nothing to save. Contact discarded
Это проблема разрешения? Как я могу успешно обновить информацию профиля?
READ_PROFILE разрешение было удалено для API 23, как указано здесь:
https://developer.android.com/sdk/api_diff/23/changes.html
Вместо этого используйте GET_ACCOUNTS.
https://developer.android.com/guide/topics/permissions/requesting.html#perm-groups