将照片添加到联系人

时间:2011-12-20 10:43:49

标签: android image contacts

我正在尝试在电话通讯录中添加联系人 我成功了:我添加了一个新联系人,并为其分配了一个手机号码。

现在我需要将我在资源目录中的JPG添加到联系人作为联系人照片 我正在寻找一个教程,但找不到任何教程。

我需要定位旧手机,因此我需要使用旧的Contacts API。

有人可以帮忙吗?

ContentValues contact = new ContentValues();

contact.put(People.NAME, "testContact");
Uri insertUri = activity.getContentResolver().insert(People.CONTENT_URI, contact);

Uri phoneUri = Uri.withAppendedPath(insertUri, People.Phones.CONTENT_DIRECTORY);
contact.clear();
contact.put(People.Phones.TYPE, People.TYPE_MOBILE);
contact.put(People.NUMBER, "12128911");


updateUri = activity.getContentResolver().insert(phoneUri, contact);

2 个答案:

答案 0 :(得分:2)

我使用新的APi 8+,你也可以使用它,(对于支持较低版本在清单文件中使用minSDKVersion你想要的......)

我正在做的事情就像,(我正在使用.PNG格式的Bitmap)

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG , 75, stream);

operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
           .withValue(ContactsContract.Data.RAW_CONTACT_ID, 9) // here 9 is _ID where I'm inserting image
           .withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1)
           .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
           .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO,stream.toByteArray())
           .build());

    try {
         stream.flush();
        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }

答案 1 :(得分:0)

final Uri uri = ContactsContract.Contacts.CONTENT_URI;
    final String[] projection = new String[] {
            ContactsContract.Contacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME,
            ContactsContract.Contacts.PHOTO_URI
    };
    //boolean mShowInvisible = false;
    String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'";
    String[] selectionArgs = null;
    final String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

    m_curContacts = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
    String[] fields = new String[] {ContactsContract.Data.DISPLAY_NAME, ContactsContract.Contacts.PHOTO_URI};
    myadapter= new MySimpleCursorAdapter(this, R.layout.list_search, m_curContacts, fields, new int []{R.id.textView1,R.id.imageView1});

请尝试此代码可能对您有所帮助。