通过意图将图像传递给默认联系人活动

时间:2016-12-14 10:16:59

标签: java android native

我想帮助将照片插入联系人,据我所研究,我发现有两种方法可以在手机中插入联系人,一种是启动手机的联系人活动,另一种是插入值直接在手机中,我使用第一种方法,我们必须启动意图,当我们开始意图我没有得到任何解决方案添加图像,我有选项添加其他小细节,如姓名,工作地点等第二种方法的问题在于,它不会让我们知道联系人是否已经添加,这可能会导致错误,它可能会创建重复的联系人。你有什么建议我可以做的? 我到现在为止做的是

     Intent contactIntent = new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT,ContactsContract.Contacts.CONTENT_URI);
            contactIntent.setData(Uri.parse("tel:" +"+91"+mMobile));
            contactIntent.putExtra(ContactsContract.Intents.Insert.NAME, name);
            contactIntent.putExtra(ContactsContract.Intents.Insert.EMAIL, email);
            contactIntent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE, mobileEx);
            startActivity(contactIntent);

1 个答案:

答案 0 :(得分:2)

要通过联系人编辑器屏幕的意图传递个人资料图像,您可以执行如下所示的操作

Receive(ref IPEndPoint)

将位图转换为byteArray的逻辑是

    Intent contactIntent = new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT,ContactsContract.Contacts.CONTENT_URI);
    contactIntent.setData(Uri.parse("tel:" +"+91"+mMobile));
    contactIntent.putExtra(ContactsContract.Intents.Insert.NAME, name);
    contactIntent.putExtra(ContactsContract.Intents.Insert.EMAIL, email);
    contactIntent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE, mobileEx);

    Bitmap bit = BitmapFactory.decodeResource(getResources(), R.drawable.profile_image);

    ArrayList<ContentValues> data = new ArrayList<ContentValues>();

    ContentValues row = new ContentValues();
    row.put(Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);
    row.put(ContactsContract.CommonDataKinds.Photo.PHOTO, bitmapToByteArray(bit));
    data.add(row);
    contactIntent.putParcelableArrayListExtra(Insert.DATA, data);
    startActivity(contactIntent);