android 号码查联系人,Android联系人查询
我在查詢電話簿聯系人時遇到問題.我需要做的是獲取同時輸入電話和電子郵件或特定類型的聯系人列表.
基本上是這樣的:
public static final String SELECTION =
"("+ContactsContract.Contacts.HAS_PHONE_NUMBER +"='1') OR " + RawContacts.ACCOUNT_TYPE + "='" + Constants.ACCOUNT_TYPE + "'";
現在的問題是,我與查詢一起使用的ContactsContract.Contacts.CONTENT_URI中不存在RawContacts.ACCOUNT_TYPE.我猜我需要加入另一個表,但是不知道如何去做.
有人可以幫我嗎?
解決方法:
讀取原始聯系人及其所有相關數據的最佳方法是使用ContactsContract.RawContacts.Entity目錄.如果原始聯系人具有數據行,則實體光標將為每個數據行包含一行.如果原始聯系人沒有數據行,則光標仍將包含一行包含原始聯系人級別信息的行.
Uri rawContactUri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId);
Uri entityUri = Uri.withAppendedPath(rawContactUri, Entity.CONTENT_DIRECTORY);
Cursor c = getContentResolver().query(entityUri,
new String[]{RawContacts.SOURCE_ID, Entity.DATA_ID, Entity.MIMETYPE, Entity.DATA1},
null, null, null);
try {
while (c.moveToNext()) {
String sourceId = c.getString(0);
if (!c.isNull(1)) {
String mimeType = c.getString(2);
String data = c.getString(3);
//decide here based on mimeType, see comment later
}
}
} finally {
c.close();
}
您將必須根據mimeType過濾結果
例如,如果mimeType為Phone.CONTENT_ITEM_TYPE,則DATA1列存儲電話號碼,但如果數據類型為Email.CONTENT_ITEM_TYPE,則DATA1存儲電子郵件地址.
這樣,您將不必直接使用HAS_PHONE_NUMBER,就可以直接遍歷所有項目.
標簽:phone-number,android-contacts,android
來源: https://codeday.me/bug/20191210/2098224.html
總結
以上是生活随笔為你收集整理的android 号码查联系人,Android联系人查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 古代湘西赶尸是真的吗(历史上湘西赶尸有真
- 下一篇: 电脑德国模拟客车(玩德国客车模拟最低要什