2013-02-25 53 views
0

(代码段修订 - 现在的工作)ContactsContract编辑忽略电子邮件,电话意图数据

根据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); 

回答

1

你有没有尝试添加phones.add(行)和emails.add(行)每次填写一排?

+0

谢谢 - 不能相信我错过了。还有另一个问题。原来你只能调用一次putParcelableArrayListExtra;解决方案是将电话和电子邮件放在一个“包裹”中。 – 2013-02-25 18:40:16