2010-11-22 41 views
2

嗨 我想新建一个接触,所以这里是我的代码:Android的创造接触问题

Intent addPersonIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 

addPersonIntent.putExtra(Insert.NAME, "asd"); 
addPersonIntent.setType(Contacts.People.NAME); 

addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_WORK); 
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123")); 
addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_MOBILE); 
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123")); 
addPersonIntent.setType(Contacts.Phones.CONTENT_ITEM_TYPE); 

... 

startActivity(addPersonIntent); 

为什么创建的唯一的事情就是手机号码,我从来没有得到的“工作”是多少?

回答

2

您正在考虑将“putExtra”添加到数组的末尾 - 如果您将其视为设置哈希表中的名称/值对,则问题会更加清晰。基本上,您将PHONE_TYPE设置为“工作”,PHONE设置为123,PHONE_TYPE设置为“mobile”(设置为工作时覆盖)和PHONE再次设置为“123”。

你想要做的是设置无论是“移动”或“作品”手机采用SECONDARY_PHONE和SECONDARY_PHONE_TYPE数据是什么 - Details here.

另外,请记住,这一切都沿用了老版本的通讯录API的这从Android 2.0+开始已弃用。有一个方便的资源,可以将您的代码迁移到新的联系人API here

+0

感谢它正在工作:) btw我的应用程序必须工作v> = 1.6 – martin 2010-11-23 08:00:24

1

这里是下一个问题,当我添加:

addPersonIntent.putExtra(Insert.NOTES, “asdkjhaskh”);

注释数据从未出现在活动中,为什么?

整个想法是启动EditContactActivity.java与加载的数据,现在我加载电话,名称和公司。出于某种原因,我无法加载笔记,另一个问题是如何设置IM的意图信息?例如,我试着用:

addPersonIntent.putExtra(Insert.IM_HANDLE,“mySkype”); addPersonIntent.putExtra(Insert.IM_PROTOCOL,Uri.decode(“skype”));

但它不工作。