【问题标题】:ContactsContract editor ignores email, phone intent dataContactsContract 编辑器忽略电子邮件、电话意图数据
【发布时间】:2013-02-26 02:38:41
【问题描述】:

(代码段已修改 - 正在运行)

根据 Android 参考资料 http://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html 应该可以将一系列电子邮件和电话号码传递给联系人编辑器。有人在这方面取得成功吗?

经过大量研究和实验,似乎没有任何效果 - 它只是忽略了参数,正如编辑器打开时只填写名称字段所证明的那样。这是在运行 Android 4.2.1 的 Nexus 7 上。通讯录应用的版本是 4.2.1-533553。

这是我的代码(“表单”在其他地方声明和填写):

Intent intent = new Intent();
intent.setAction (Intent.ACTION_INSERT);
intent.setData (ContactsContract.Contacts.CONTENT_URI);
intent.putExtra (ContactsContract.Intents.Insert.NAME, form.name);

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

for (int i = 0;  i < form.phones.length;  i++)
{
  ContentValues row = new ContentValues();
  row.put (Data.MIMETYPE, CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
  row.put (CommonDataKinds.Phone.NUMBER, form.phones[i]);
  row.put (CommonDataKinds.Phone.TYPE, form.phoneIds[i]);
  parcels.add (row);
}

for (int i = 0;  i < form.emails.length;  i++)
{
  ContentValues row = new ContentValues();
  row.put (Data.MIMETYPE, CommonDataKinds.Email.CONTENT_ITEM_TYPE);
  row.put (CommonDataKinds.Email.ADDRESS, form.emails[i]);
  row.put (CommonDataKinds.Email.TYPE, form.emailIds[i]);
  parcels.add (row);
}

intent.putParcelableArrayListExtra (ContactsContract.Intents.Insert.DATA, parcels);
startActivityForResult (intent, ACTIVITY_REQUEST_FULL_EDIT);

【问题讨论】:

    标签: android android-intent contactscontract


    【解决方案1】:

    您是否尝试在每次填充一行时添加phones.add(row) 和emails.add(row)?

    【讨论】:

    • 谢谢 - 不敢相信我错过了。还有另一个问题。原来你只能调用 putParcelableArrayListExtra 一次;解决方案是将手机和电子邮件放在一个“包裹”中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 2021-06-06
    • 2015-01-27
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多