我想创建一个SMS Android应用程序。我阅读了SMS发件人的姓名和消息正文,然后在列表视图中显示了它们。我使用以下URI从发件人的号码中读取发件人的名称。

Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(senderNumber));


这行代码做什么?

最佳答案

这会根据senderNumber从电话簿中过滤联系人



/*
 * Returns contact's id
 */
private String getContactId(String phoneNumber, Context context) {
    ContentResolver mResolver = context.getContentResolver();

    Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
            Uri.encode(phoneNumber));

    Cursor cursor = mResolver.query(uri, new String[] {
            PhoneLookup.DISPLAY_NAME, PhoneLookup._ID }, null, null, null);

    String contactId = "";

    if (cursor.moveToFirst()) {
        do {
            contactId = cursor.getString(cursor
                    .getColumnIndex(PhoneLookup._ID));
        } while (cursor.moveToNext());
    }

    cursor.close();
    cursor = null;
    return contactId;
}


在此示例中,您将基于查询仅从PhoneLookup.DISPLAY_NAMEPhoneLookup._ID两列获取数据。

08-05 03:05
查看更多