Выбор номера телефона из контактовAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Выбор номера телефона из контактов

Сообщение Anonymous »

Я делаю все, как описано в документации от Google. Но этот код работает не для всех версий Android (
Код https://developer.android.com/guide/com ... ickContact

Код: Выделить всё

fun selectContact() {
// Start an activity for the user to pick a phone number from contacts.
val intent = Intent(Intent.ACTION_PICK).apply {
type = CommonDataKinds.Phone.CONTENT_TYPE
}
if (intent.resolveActivity(packageManager) != null) {
startActivityForResult(intent, REQUEST_SELECT_PHONE_NUMBER)
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
if (requestCode == REQUEST_SELECT_PHONE_NUMBER && resultCode == Activity.RESULT_OK) {
// Get the URI and query the content provider for the phone number.
val contactUri: Uri = data.data
val projection: Array = arrayOf(CommonDataKinds.Phone.NUMBER)
contentResolver.query(contactUri, projection, null, null, null).use { cursor ->
// If the cursor returned is valid, get the phone number.
if (cursor.moveToFirst()) {
val numberIndex = cursor.getColumnIndex(CommonDataKinds.Phone.NUMBER)
val number = cursor.getString(numberIndex)
// Do something with the phone number.
...
}
}
}
}
Этот код должен работать на основе временной передачи разрешений на чтение контактов.
  • На Android 10,11 нет работать без ручной установки разрешения READ_CONTACTS (contentResolver.query не возвращает данные, 0 записей). Если вы дадите разрешение READ_CONTACTS во время выполнения, оно работает.
  • Я посмотрел на Android 7,12,14, выбор контакта из контактов работает без разрешений во время выполнения (Samsung S22 и стандартный эмулятор Android Studio).
Сталкивались ли вы с подобным? В чем может быть проблема?
Пытался сделать все по мануалу из документации Google https://developer.android.com/guide/com ... mmon?hl=en #PickContact
UP
Сейчас проверил на двух эмуляторах Android 10. На одном работает, а на другом нет.
На эмуляторах вообще не работает с Android 11.
Это может быть связано с эмуляторами...
Также это не работает на Samsung a40.

Подробнее здесь: https://stackoverflow.com/questions/792 ... m-contacts
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»