2016-12-23 1 views
0

Ich muss alle Daten für einen einzelnen Kontakt, der von einem Benutzer ausgewählt wurde (Action.Pick) abrufen. Ich möchte LOOKUP KEY wie von developer.android.com vorgeschlagen verwenden. Kann ich das mit einer einfachen Abfrage tun, ohne Loader etc. zu erstellen, wie in der Dokumentation vorgeschlagen?Android Daten für Kontakt mit Suchschlüssel erhalten

Antwort

0

Ich schrieb diese Methode für meine Anwendung:

public static Cursor getContactCursorByLookUpKey(Context context,String lookUpKey) 
{ 
    ContentResolver contentResolver = context.getContentResolver(); 
    Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI,lookUpKey); 
    return contentResolver.query(lookupUri,null,null,null,null); 
} 

die Daten Daten aus dem Cursor lesen einfach zu bekommen. Zum Beispiel:

Cursor data = ContactManager.getContactCursorByLookUpKey(ContactDetailsActivity.this,lookUpKey); 
String name = data.getString(data.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
String photoPath = data.getString(data.getColumnIndex(ContactsContract.Contacts.PHOTO_URI)); 
+0

was passiert, wenn sich der LookUpKey ändert? – toofoo

0

können Sie die Kontakte Provider abfragen ContentResolver direkt verwenden, wenn Sie die READ_CONTACTS Berechtigung haben. Sie erhalten einen Cursor mit mehreren Zeilen roher Kontaktdaten (Telefone, E-Mails usw.). Iterieren Sie über den Cursor, um sie zu lesen und vergessen Sie nicht, den Cursor zu schließen.