0
我將帳戶名稱從列表傳遞給此方法。現在我想知道哪些這些帳戶名稱只在聯繫人表中讀取,所以我只迭代光標一次從原始光標獲取聯繫人ID。獲取contact_id後,我使用電話遊標來檢查給定的ID是否只讀,但我無法做到。請有以下如何從Android中的聯繫人中的聯繫人ID獲取只讀帳戶名稱
private void displayAllContactsByType(String accountName) {
Cursor rawCursor,phones = null;
rawCursor = cResolver.query(
ContactsContract.RawContacts.CONTENT_URI,
new String[]{ContactsContract.RawContacts.CONTACT_ID},
ContactsContract.RawContacts.ACCOUNT_NAME + "= ?",
new String[]{accountName},
null);
int contactIdColumn = rawCursor.getColumnIndex(ContactsContract.RawContacts.CONTACT_ID);
int rawCursorCount = rawCursor.getCount();
Utils.Log("Account Name", accountName);
Utils.Log("Raw Size", " " + rawCursorCount);
rawCursor.moveToFirst();
Long contactId = rawCursor.getLong(contactIdColumn);
phones = cResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ? AND "+ContactsContract.RawContacts.ACCOUNT_NAME + "= ?",
new String[]{String.valueOf(contactId),accountName},
null);
phones.moveToFirst();
String isReadOnly= phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.IS_READ_ONLY));
Utils.Log("Raw Size", isReadOnly);
}
Thankyou非常多。 –
我也想只與具有電話聯繫人的同步適配器一起使用這些帳戶。 –
「只有手機通訊錄」是什麼意思?你的意思是特殊的聯繫人帳戶名爲「僅電話(未同步)」,如果你這樣做,它沒有SyncAdapter,因爲它是一個未初始帳戶 – marmor