I am currently passing contact name and number with an intent. Which works fine. I am however unable to find out how I can pass a contacts photo and assign it to an ImageView in activity.
I've searched around here and not found an easy answer to this at all.
In case it's neccessary, my method to get name and number of whomever is calling:
private String getContactName(String number) {
String name = null;
String[] projection = new String[]{
ContactsContract.PhoneLookup.DISPLAY_NAME,
ContactsContract.PhoneLookup._ID};
Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
Cursor cursor = this.c.getContentResolver().query(contactUri, projection, null, null, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
name = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
}
cursor.close();
}
return name;
}
It gets passed to my activity:
Bundle bundle = new Bundle();
bundle.putString("Number", number);
bundle.putString("Name", this.getContactName(number));
intent.putExtras(bundle);
Received with
Bundle bundle = this.getIntent().getExtras();
if (bundle.getString("Name").isEmpty()) {
this.name.setText("Unknown Caller");
} else {
this.name.setText(bundle.getString("Name"));
}
if (bundle.getString("Number").isEmpty()) {
this.number.setText(bundle.getString("Number"));
} else {
this.number.setText(bundle.getString("Name"));
}