Запрос на поиск номера телефона не получает номер с кодом страны в поставщике контента AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Запрос на поиск номера телефона не получает номер с кодом страны в поставщике контента Android

Сообщение Anonymous »

В своем приложении я хочу реализовать функцию, позволяющую указывать номер телефона, и она предоставляет всю информацию об этом конкретном номере, сохраненную в моем телефоне, с помощью поставщика контента. Вот код, который я пробовал. Частично это выполнило то, что я хотел.

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

ContactRepository.kt

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

interface ContactRepository {
suspend fun getContacts(mobileNumbers: List): Result
}

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

ContactRepositoryImpl.kt

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

class ContactRepositoryImpl @Inject constructor(
@ApplicationContext private val context: Context
) : ContactRepository {

override suspend fun getContacts(mobileNumbers: List): Result {
val contactList = mutableListOf()

return runCatching {
val contentResolver = context.contentResolver

val uri = Phone.CONTENT_URI
val projection = arrayOf(
Phone.NUMBER,
Phone.DISPLAY_NAME,
Phone.PHOTO_URI
)
val selection = "${Phone.NUMBER} IN (${mobileNumbers.joinToString(",") { "?" }})"
val selectionArgs = mobileNumbers.filterNotNull().toTypedArray()

// SELECT `projection` FROM `uri` WHERE `selection` = `selectionArgs`
val cursor = contentResolver.query(uri, projection, selection, selectionArgs, null)

cursor?.use {
val phoneNumberIndex = it.getColumnIndex(Phone.NUMBER)
val nameIndex = it.getColumnIndex(Phone.DISPLAY_NAME)
val photoUriIndex = it.getColumnIndex(Phone.PHOTO_URI)

while (it.moveToNext()) {
val number = it.getString(phoneNumberIndex)
val name = it.getString(nameIndex)
val photoUri = it.getString(photoUriIndex)

println("Value -> $number : $name : $photoUri")

contactList.add(
Contact(
name = name,
number = number,
photoUri = photoUri
)
)
}
}

contactList
}
}

}
Но проблема возникает, когда я ввожу номер, например (01866985338), и этот номер сохраняется в моем телефоне вместе с кодом страны, например (+880186698 или +880 1866-98).
Вот почему, хотя оба номера имеют одно и то же число, из-за несоответствия моего «выбора»
это не было получено. Как я могу решить эту проблему.
Помните, входные данные могут быть списком строк или одной строкой

Подробнее здесь: https://stackoverflow.com/questions/789 ... roid-conte
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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