android - 从自己的应用程序创建与照片的新联系人

问题描述:

我想打开本机联系人编辑器从我自己的应用程序通过意图,我与意图(使用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细节。

+0

谢谢,但这并不回答我的问题。我不想将联系人插入到本地数据库,我想通过发送包含照片在内的相关数据的意图,在查看或编辑模式下打开本地联系人。 – 2012-07-15 11:11:03