2
私はSMSアプリケーションを拡張しています。そして今、私はmmssms.dbからすべてのSMSメッセージを読むことができます。 SMSデータベーステーブルのフィールド 'person'は、連絡先テーブルの '_id'を示します。 'person'が> = 1の場合、連絡先リストのユーザーからメッセージが送信されます。だから、私は 'contactQuery'からコンタクトテーブル。しかし、私の携帯電話では、テストプログラムが「人」> = 1という連絡先情報を照会できないことがあります。ここで は私の質問をより明確にすることができ、いくつかのサンプルコードです:SMSで連絡先情報を取得する方法
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のサンプルから勉強しようとしましたが、実際には働いていませんでした。あなたの作品は完璧に動作します。私はそれがすべてのメッセージと連絡先を取得している間、画面が数秒間空白であるので、それを少し最適化する方法を見つける必要があります - しかしatleastは今すべての連絡先を取得します:) – username