Содержание SMS Android (content://SMS/отправлять)

У меня есть проблема при чтении SMS-сообщений из устройства. При получении контент-провайдера для URI content://sms/inbox, все прекрасно. Я могу прочитать столбец человека, чтобы найти внешний ключ в людей таблицей и в конечном счете достигнуть контакта и их имени.

Однако я также хочу пересечь отправленные сообщения также. При чтении из content://sms/sent, поле человека всегда, кажется, 0.

Действительно ли это - корректное поле для чтения для определения местоположения данных получателя для отправленного сообщения? Раз так - какая-либо идея, почему мой всегда 0?

Все мое тестирование было сделано в эмуляторе, и я создал 3 контакта. Я отправил сообщения в те контакты от эмулятора нормальным способом, который Вы отправили бы сообщению.

Только для повторения я вижу 4 отправленных сообщения, и прочитайте связанный основной текст. Моя проблема состоит в том, что я, может казаться, не читаю идентификатор "человека", и следовательно я не могу удаться, кто получатель.

20
задан Christian Garbin 14 July 2019 в 15:30
поделиться

1 ответ

Используйте столбец адреса. Я предполагаю, что столбец человека проигнорирован, потому что люди могут отправить SMSs в номера телефона, которые не находятся в списке контактов.

// address contains the phone number
Uri phoneUri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, address);
if (phoneUri != null) {
  Cursor phoneCursor = getContentResolver().query(phoneUri, new String[] {Phones._ID, Contacts.Phones.PERSON_ID}, null, null, null);
  if (phoneCursor.moveToFirst()) {
    long person = phonesCursor.getLong(1); // this is the person ID you need
  }
}
18
ответ дан 30 November 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: