2
我正在開發一個擴展SMS應用程序。現在我可以從mmssms.db中讀取所有SMS消息。在SMS數據庫表中,字段'person'表示聯繫人表中的'_id'。當「人員」> = 1時,表示該消息是從聯繫人列表中的人員發送的。所以我可以從聯繫人表中'managedQuery'。但問題是,在我的手機中,測試程序有時甚至不能查詢聯繫人信息,即使'person'> = 1。那麼有人可以告訴我一些正確的方法來查詢SMS表中提交的'person'的聯繫信息嗎? 下面是一些示例代碼,它可以使我的問題更加清晰:如何通過短信獲取聯繫信息
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;
}
感謝張貼您的解決方案。我很感激!你知道......我試着從我上週在網上找到的大約30個樣本中學習,而且他們中沒有一個真正起作用。你們的作品完美無缺。我需要找到一種方法來優化它,因爲屏幕在幾秒鐘內是空白的,同時獲取所有消息和聯繫人 - 但至少它現在獲得所有聯繫人:) – username 2015-12-28 03:40:05