2011-01-20 76 views
1

在我的应用程序中,我试图通过调用标准的创建/编辑联系人活动来创建联系人。创建预填充的联系人的标准活动

我发现如何使它工作,但不完全是我喜欢的方式。

现在我设法调用标准创建联系人活动有以下意图额外:

Intent i = new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, Uri.parse(String.format("tel: %s", data.getPhone()))); 
i.addCategory(Intent.CATEGORY_DEFAULT); 
i.putExtra(ContactsContract.Intents.EXTRA_FORCE_CREATE, true); 
i.putExtra(ContactsContract.Intents.Insert.NAME, data.getName()); 
i.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK); 
i.putExtra(ContactsContract.Intents.Insert.PHONE, org.getPhone()); 
i.putExtra(ContactsContract.Intents.Insert.POSTAL_TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK); 
i.putExtra(ContactsContract.Intents.Insert.POSTAL, org.getAddress() + " " + org.getZipCode()); 
i.putExtra(ContactsContract.Intents.Insert.EMAIL_TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK); 
i.putExtra(ContactsContract.Intents.Insert.EMAIL, org.getEmail()); 
startActivity(i); 

所有数据除地址字段正确填写,你可以在下面的图片中看到:http://img689.imageshack.us/img689/1073/capturevvm.png

我想在单独的字段中指定地址的每个部分。有没有办法用Intent做到这一点?

我试过了,但没有奏效。

i.putExtra(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK); 
i.putExtra(ContactsContract.CommonDataKinds.StructuredPostal.STREET, "toto"); 
i.putExtra(ContactsContract.CommonDataKinds.StructuredPostal.CITY, "paris"); 

任何想法?

回答

1
contactIntent.putExtra(ContactsContract.Intents.Insert.POSTAL, "2 rue de Romme, 75000 Paris"); 
contactIntent.putExtra(ContactsContract.Intents.Insert.POSTAL_TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK);