ガー、もう一つのシナリオはここでは簡単なことが非常に時間がかかり痛いことが分かっています。私は連絡先プロバイダを照会するためにこれを使用してい連絡先の写真を抽出する
:
private Cursor getContacts(){
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID
};
......
return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
}
これは正常に動作し、連絡先の名前を検索し、連絡先の一握りにそれは私があると仮定しPHOTO_IDフィールドの数値のIDを示し、私が要求しているPHOTO_ID。しかし、そのIDをこのメソッドにプッシュしてビットマップを抽出し、すべての接触で失敗し、毎回ストリームがヌルです。私は、いくつかのAndroidの連絡先の写真を含む連絡先のセットに対してテストしています(私はFacebookの連絡先から写真を抽出するいくつかの問題があることを知っています)。
private Bitmap loadContactPhoto(long id) {
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, uri);
if (input == null) return null;
Bitmap bitmap = BitmapFactory.decodeStream(input);
return bitmap;
}
何が欠けていますか?
ありがとうございました!私の日を救ったのですが、誰かがどのようにしてフェイスブックの同期などからも抽出する方法を教えてくれますか? – bricklore