Python - 从电话号码获取联系人

时间:2014-11-26 07:29:09

标签: android python android-contacts phone-number sl4a

使用SL4A和Python,有一种从电话号码获取联系人ID的简单方法吗?

电话号码来自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条目中的值是发送短信的电话号码。

我想使用此号码获取联系人ID,但如果可能,我希望避免搜索所有联系人。

1 个答案:

答案 0 :(得分:-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

'phone'是标准化的电话号码

返回contact_id列表