che sto cercando di:Prendi contatti Android con funzionalità tipo-to-filtro, limitate a un account specifico
- visualizzare un elenco dei contatti
- Facciamo la ricerca degli utenti attraverso di loro inserendo i termini di
- Limita i risultati della ricerca solo a un account Google/Gmail specifico.
Questo è come costruisco l'URI per il cursore:
// User is searching for 'jo'
String query = "jo";
Uri uri = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI, Uri.encode(query));
// Restrict the query to contacts from '[email protected]'
Uri.Builder builder = uri.buildUpon();
builder.appendQueryParameter(
ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(ContactsContract.Directory.DEFAULT));
builder.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, "[email protected]");
builder.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google");
uri = builder.build();
Questa è l'URI finale:
content://com.android.contacts/contacts/filter/jo?directory=0&account_name=example%40gmail.com&account_type=com.google
Attualmente, questa mostra i risultati di ricerca da tutto account al telefono.
NOTA: Se uso Contacts.CONTENT_URI
invece di Contacts.CONTENT_FILTER_URI
, quindi specificando le opere directory/conto come previsto, ma non posso più usare 'type-to-filtro' di ricerca di stile.
Il documentation fa Stato:
Il più importante caso d'uso per directory è ricerca. Un provider di Directory supporterà almeno
Contacts.CONTENT_FILTER_URI
.
Qualcuno potrebbe aiutare a far notare cosa potrei fare di sbagliato?
Grazie per la risposta, ma questo sembra avere lo stesso problema. Inizialmente, * fa * limita i contatti all'account specificato. Ma non appena inizi a digitare una query di ricerca, mostra i contatti di tutti gli account. – Gautam
allora dovrei pensare che è un Android <5.0 bug, perché il molto stesso codice funziona perfettamente sul mio Lollipop Nexus, ma non sul mio Galaxy 4.2 tablet. –
In realtà lo stavo eseguendo su un Moto X (testato su Android 5.0 e con il recente aggiornamento 5.1). Stesso problema. Hai funzionato correttamente anche la ricerca? – Gautam