Das war sehr hilfreich, hier ist mein letzter Code für den Namen, die ID des Anrufers abrufen und Foto:
private void uploadContactPhoto(Context context, String number) {
Log.v("ffnet", "Started uploadcontactphoto...");
String name = null;
String contactId = null;
InputStream input = null;
// define the columns I want the query to return
String[] projection = new String[] {
ContactsContract.PhoneLookup.DISPLAY_NAME,
ContactsContract.PhoneLookup._ID};
// encode the phone number and build the filter URI
Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
// query time
Cursor cursor = context.getContentResolver().query(contactUri, projection, null, null, null);
if (cursor.moveToFirst()) {
// Get values from contacts database:
contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup._ID));
name = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
// Get photo of contactId as input stream:
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(contactId));
input = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(), uri);
Log.v("ffnet", "Started uploadcontactphoto: Contact Found @ " + number);
Log.v("ffnet", "Started uploadcontactphoto: Contact name = " + name);
Log.v("ffnet", "Started uploadcontactphoto: Contact id = " + contactId);
} else {
Log.v("ffnet", "Started uploadcontactphoto: Contact Not Found @ " + number);
return; // contact not found
}
// Only continue if we found a valid contact photo:
if (input == null) {
Log.v("ffnet", "Started uploadcontactphoto: No photo found, id = " + contactId + " name = " + name);
return; // no photo
} else {
this.type = contactId;
Log.v("ffnet", "Started uploadcontactphoto: Photo found, id = " + contactId + " name = " + name);
}
... dann tun Sie einfach was Sie wollen mit "Eingabe" (ihr Foto als InputStream), "na mich "und" contactId ".
Und hier sind die docs der Auflistung ~ 15 oder so Spalten Sie Zugriff haben, nur um sie in der Nähe der Start des Codes auf den Vorsprung aufaddieren oben: http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup.html
Für die Anlage zu erhalten von anderen habe ich einen Beitrag geschrieben, der den ganzen Code enthält, um Namen, Foto, Kontakt-ID usw. mit anständiger Erklärung abzufragen. Der Code enthält Snippets, die auf verschiedenen Antworten zu finden sind, aber besser organisiert und getestet sind. Link: http://hellafun.weebly.com/home/get-information-of-a-contact-from-number – Usman