Я хочу проверить, как работает новая модель разрешения, поэтому в настройках приложения отключено Contacts
. Тогда я иду к приложению и попытаться прочитать Contacts
и ... это своего рода работы:Разрешение Android 6.0 (Marshmallow) Разрешение READ_CONTACTS позволяет читать имя контакта, когда разрешено отклонение
try {
Uri result = data.getData();
int contentIdx;
cursor = getContentResolver().query(result, null, null, null, null);
contentIdx = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
if(cursor.moveToFirst()) {
content = cursor.getInt(contentIdx);
}
if(content > 0) {
contentIdx = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
if(cursor.moveToFirst()) {
name = cursor.getString(contentIdx);
}
contentIdx = cursor.getColumnIndex(BaseColumns._ID);
if(cursor.moveToFirst()) {
content = cursor.getLong(contentIdx);
}
cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] { Phone.NUMBER }, Data.CONTACT_ID + "=?", new String[] { String.valueOf(content) }, null);
if(cursor.moveToFirst()) {
number = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
}
}
} catch (Exception e) {
//SecurityException
}
- Я могу читать Имя Контакта
- , когда я пытаюсь прочитать Контакта номер
SecurityException
брошено
java.lang.SecurityException: Разрешение Отрицание: чтение com.android.providers.contacts.HtcContactsProvider2 URI содержание: //com.android.contacts/data/phones из PID = 20123, UID = 10593 требует андроида. разрешение. READ_CONTACTS или grantUriPermission()
Почему это?
Похожие вещи: Contact data leakage via pick activities
Обратите внимание, что вы не используете ContactsContract от Google, как вы можете видеть, мы видим, что вы обращаетесь com.android.providers.contacts.HtcContractsProvider, может быть, HTC имеет проблему с подтверждением разрешения. Мое предложение состояло в том, чтобы проверить устройство AOSP и посмотреть, верно ли то же самое. Если это не так, значит, это проблема с утечкой разрешения внутри HTC. Если они одинаковы, это звучит как проблема AOSP. – JoxTraex
Он также воспроизводится на Nexus. –