android 号码查联系人,Android联系人查询
我在查詢電話簿聯(lián)系人時遇到問題.我需要做的是獲取同時輸入電話和電子郵件或特定類型的聯(lián)系人列表.
基本上是這樣的:
public static final String SELECTION =
"("+ContactsContract.Contacts.HAS_PHONE_NUMBER +"='1') OR " + RawContacts.ACCOUNT_TYPE + "='" + Constants.ACCOUNT_TYPE + "'";
現(xiàn)在的問題是,我與查詢一起使用的ContactsContract.Contacts.CONTENT_URI中不存在RawContacts.ACCOUNT_TYPE.我猜我需要加入另一個表,但是不知道如何去做.
有人可以幫我嗎?
解決方法:
讀取原始聯(lián)系人及其所有相關(guān)數(shù)據(jù)的最佳方法是使用ContactsContract.RawContacts.Entity目錄.如果原始聯(lián)系人具有數(shù)據(jù)行,則實體光標將為每個數(shù)據(jù)行包含一行.如果原始聯(lián)系人沒有數(shù)據(jù)行,則光標仍將包含一行包含原始聯(lián)系人級別信息的行.
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();
}
您將必須根據(jù)mimeType過濾結(jié)果
例如,如果mimeType為Phone.CONTENT_ITEM_TYPE,則DATA1列存儲電話號碼,但如果數(shù)據(jù)類型為Email.CONTENT_ITEM_TYPE,則DATA1存儲電子郵件地址.
這樣,您將不必直接使用HAS_PHONE_NUMBER,就可以直接遍歷所有項目.
標簽:phone-number,android-contacts,android
來源: https://codeday.me/bug/20191210/2098224.html
總結(jié)
以上是生活随笔為你收集整理的android 号码查联系人,Android联系人查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 古代湘西赶尸是真的吗(历史上湘西赶尸有真
- 下一篇: android 7.0 禁止 imei,