0
私はリストからアカウント名をこのメソッドに渡しています。今私はこれらのアカウント名のうち連絡先のテーブルからのみ読み込まれているので、私は生のカーソルから連絡先IDを取得するためにカーソルを一度反復しているかを知りたい。 contact_idを取得した後、私は指定されたIDが読み取り専用かどうかを確認するために電話カーソルを使用していますが、私はそれを行うことができません。あなたはそれをチェックするために、アカウントの連絡先をオーバー行く必要はありません、あなたは、単にデバイス上SyncAdaptersを反復し、そのプロパティを確認することができます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);
}
ありがとうございます。 –
私はまた、電話連絡先のみを持つ同期アダプタを持つアカウントだけを取得したいと思います。 –
「電話連絡先のみ」とはどういう意味ですか?同期されていないアカウントであるため、SyncAdapterはありません。 – marmor