0
私はContact.Pickerを使用しています。連絡先番号を取得するには以下のコードを使用しています。連絡先に画像があり、画像ビューに設定したい場合は、何人か働いている人は誰もビットマップを使用していませんが、誰も私のマシュマロで働いていませんよ!あなたが試すことができます連絡先の写真を取得してAPIの画像ビューに設定する
case (PICK_CONTACT):
Cursor cursor = null;
String phoneNumber = "";
String image="";
List<String> allNumbers = new ArrayList<String>();
int phoneIdx = 0;
String photoId = "";
try {
Uri result = data.getData();
String id = result.getLastPathSegment();
cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[]{id}, null);
phoneIdx = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA);
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() == false) {
phoneNumber = cursor.getString(phoneIdx);
allNumbers.add(phoneNumber);
cursor.moveToNext();
}
} else {
//no results actions
}
} catch (Exception e) {
//error actions
} finally {
if (cursor != null) {
cursor.close();
}
final CharSequence[] items = allNumbers.toArray(new String[allNumbers.size()]);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Choose a number");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
String selectedNumber = items[item].toString();
String selectedNumber = phoneNumber.toString();
//Contact photo pick code
Bitmap hello= retrieveContactPhoto(MainActivity.this,selectedNumber);
avatar.setImageBitmap(hello);
Log.d("Bitmapis",hello+"");
selectedNumber = selectedNumber.replace("-", "");
number.setText(selectedNumber);
}
});
AlertDialog alert = builder.create();
if (allNumbers.size() > 1) {
alert.show();
} else {
String selectedNumber = phoneNumber.toString();
enter code here
selectedNumber = selectedNumber.replace("-", "");
number.setText(selectedNumber);
}
if (phoneNumber.length() == 0) {
//no numbers found actions
}
}
break;
}
public static Bitmap retrieveContactPhoto(Context context, String number) {
ContentResolver contentResolver = context.getContentResolver();
String contactId = null;
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
String[] projection = new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.PhoneLookup._ID};
Cursor cursor =
contentResolver.query(
uri,
projection,
null,
null,
null);
if (cursor != null) {
while (cursor.moveToNext()) {
contactId = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup._ID));
}
cursor.close();
}
Bitmap photo = BitmapFactory.decodeResource(context.getResources(),
R.drawable.man);
try {
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(),
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(contactId)));
if (inputStream != null) {
photo = BitmapFactory.decodeStream(inputStream);
}
assert inputStream != null;
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return photo;
}
あなたはどんな写真に関連するコードを持っていません掲載のコードは、あなたが写真を取得するために使用しようとしていたが、私の更新されたコードを確認し@marmor – marmor
を動作しませんでしたコードを投稿してください! –