【发布时间】:2010-12-17 02:40:58
【问题描述】:
我正在开发一个扩展 SMS 应用程序。现在我可以读取来自 mmssms.db 的所有 SMS 消息。在 SMS 数据库表中,字段“person”表示联系人表中的“_id”。当 'person' >= 1 时,这意味着消息是从联系人列表中的人发送的。所以我可以从联系人表中“管理查询”。但问题是,在我的手机中,测试程序有时无法查询联系人信息,即使“人”> = 1。那么有人可以告诉我一些正确的方法来查询短信表中“人”的联系信息吗? 这是一些示例代码,可以使我的问题更清楚:
class ContactItem {
public String mName;
}
ContactItem getContact(Activity activity, final SMSItem sms) {
if(sms.mPerson == 0) return null;
Cursor cur = activity.managedQuery(ContactsContract.Contacts.CONTENT_URI,
new String[] {PhoneLookup.DISPLAY_NAME},
" _id=?",
new String[] {String.valueOf(sms.mPerson)}, null);
if(cur != null &&
cur.moveToFirst()) {
int idx = cur.getColumnIndex(PhoneLookup.DISPLAY_NAME);
ContactItem item = new ContactItem();
item.mName = cur.getString(idx);
return item;
}
return null;
}
【问题讨论】:
标签: android