Python - Получить контакт с номера телефона

Используя SL4A и Python, есть ли простой способ получить идентификатор контакта по номеру телефона?

Номер телефона указан в поле "адрес" SMS.

Я пытаюсь избежать поиска по всем контактам.

я использую m = droid.smsGetMessageById(id, None).result получить смс сообщение. Результат выглядит так:

{u'read': u'1', u'body': u"Hello! Your mobile bill's now ready to view at virginmobile.co.uk/youraccount. We'll collect your Direct Debit of 12.12 on or just after 19th Nov.", u'_id': u'1323', u'date': u'1415372649502', u'address': u'1234567890'}

Значение в address запись - это номер телефона, который отправил SMS.

Я хочу получить идентификатор контакта, используя этот номер, но, если возможно, я хочу избежать поиска всех моих контактов.

1 ответ

Решение

Я понял:

def contactFromPhone(phone):

  uri='content://com.android.contacts/data'
  filter='data4 LIKE ?'
  args=['%'+phone+'%']
  columns=['contact_id']

  contacts=droid.queryContent(uri, columns, filter, args).result

  cs=[]
  if len(contacts)>0:
    for c in contacts:
      cs.append(c['contact_id'])

  return cs

"телефон" - это нормализованный номер телефона

возвращает список contact_id

Другие вопросы по тегам