Не могу получить имя контакта из интента (API 30)
Пытаюсь получить имя контакта и сохранить себе в приложение. Если устройство с API ниже 30 все норм работает если 30 и выше, имя контакта не сохраняется. Пробовал добавлять разрешения в манифест, но ничего не помогло.
<queries>
<intent>
<action android:name="android.accounts.AccountAuthenticator" />
</intent>
<!-- Allows the app to load an icon corresponding to the custom MIME type. -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="content" android:host="com.android.contacts"
android:mimeType="vnd.android.cursor.item/*" />
</intent>
</queries>
Вот кусок кода отвечающий за извлечение и сохранение контакта
pickContactCallback = ActivityResultCallback<Uri?> {contactUri: Uri? ->
val queryFields = arrayOf(ContactsContract.Contacts.DISPLAY_NAME)
val cursor = contactUri?.let { contactUri ->
requireActivity().contentResolver.query(
contactUri,
queryFields,
null,
null,
null
)
}
cursor?.use {
if (it.count == 0){
return@ActivityResultCallback
}
it.moveToFirst()
val suspect = it.getString(0)
//Log.d(TAG, "onActivityResult() called - $suspect")
crime.suspect = suspect
crimeDetailViewModel.saveCrime(crime)
suspectButton.text = suspect
}
}
в строчке где идет проверка if (it.count == 0), cursor почему-то возвращает count = 0