1
我想打開本機聯繫人編輯器從我自己的應用程序通過意圖,我與意圖(使用putExtra函數)的數據打開。 我使用ContactsContract.Intents.Insert將數據傳遞給本機聯繫人。我可以傳遞所有聯繫人數據(地址,姓名,電話號碼等),但不包括聯繫人照片。android - 從自己的應用程序創建與照片的新聯繫人
我該怎麼做(傳遞實際數據字節或url)? 感謝
我想打開本機聯繫人編輯器從我自己的應用程序通過意圖,我與意圖(使用putExtra函數)的數據打開。 我使用ContactsContract.Intents.Insert將數據傳遞給本機聯繫人。我可以傳遞所有聯繫人數據(地址,姓名,電話號碼等),但不包括聯繫人照片。android - 從自己的應用程序創建與照片的新聯繫人
我該怎麼做(傳遞實際數據字節或url)? 感謝
這裏有一個片段,你可以嘗試:
public static void setContactPhoto(ContentResolver c,
byte[] bytes,
long personId) {
ContentValues values = new ContentValues();
int photoRow = -1;
String where = ContactsContract.Data.RAW_CONTACT_ID + " = "
+ personId + " AND " + ContactsContract.Data.MIMETYPE
+ "=='" + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "'";
Cursor cursor = c.query(ContactsContract.Data.CONTENT_URI,
null, where,
null, null);
int idIdx = cursor.getColumnIndexOrThrow(ContactsContract.Data._ID);
if (cursor.moveToFirst()) {
photoRow = cursor.getInt(idIdx);
}
cursor.close();
values.put(ContactsContract.Data.RAW_CONTACT_ID, personId);
values.put(ContactsContract.Data.IS_SUPER_PRIMARY, 1);
values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, bytes);
values.put(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);
if (photoRow >= 0) {
c.update(ContactsContract.Data.CONTENT_URI, values,
ContactsContract.Data._ID + " = " + photoRow, null);
} else {
c.insert(ContactsContract.Data.CONTENT_URI, values);
}
}
你可以閱讀所有關於那篇文章的source細節。
謝謝,但這並不回答我的問題。我不想將聯繫人插入到本地數據庫,我想通過發送包含照片在內的相關數據的意圖,在查看或編輯模式下打開本地聯繫人。 – 2012-07-15 11:11:03