我想创建一个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_NAME
和PhoneLookup._ID
两列获取数据。