如何在 android 中启动“添加联系人”活动
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1895206/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How can I launch the 'Add Contact' activity in android
提问by hap497
Can you please tell me how to launch the Add Contact' activity in android? Thank you.
你能告诉我如何在android中启动“添加联系人”活动吗?谢谢你。
采纳答案by Anthony Forloney
Thispost may help you out or at least point you in the right direction.
这篇文章可能会帮助您或至少为您指明正确的方向。
Hope this helps.
希望这可以帮助。
Update 05/11/2015:
2015 年 5 月 11 日更新:
Per the comments, check out vickey's answer belowfor the appropriate solution.
根据评论,请查看下面 vickey 的答案以获取适当的解决方案。
回答by zwickilton
API Level 5 and above solution
API Level 5 及以上解决方案
// Add listener so your activity gets called back upon completion of action,
// in this case with ability to get handle to newly added contact
myActivity.addActivityListener(someActivityListener);
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
// Just two examples of information you can send to pre-fill out data for the
// user. See android.provider.ContactsContract.Intents.Insert for the complete
// list.
intent.putExtra(ContactsContract.Intents.Insert.NAME, "some Contact Name");
intent.putExtra(ContactsContract.Intents.Insert.PHONE, "some Phone Number");
// Send with it a unique request code, so when you get called back, you can
// check to make sure it is from the intent you launched (ideally should be
// some public static final so receiver can check against it)
int PICK_CONTACT = 100;
myActivity.startActivityForResult(intent, PICK_CONTACT);
回答by Vikram Gupta
These two lines do the trick:
这两行可以解决问题:
Intent intent = new Intent(Intent.ACTION_INSERT,
ContactsContract.Contacts.CONTENT_URI);
startActivity(intent);
回答by Gautier Hayoun
This should be the snippet your are looking for:
这应该是您正在寻找的片段:
Intent addContactIntent = new Intent(Contacts.Intents.Insert.ACTION, Contacts.People.CONTENT_URI);
addContactIntent.putExtra(Contacts.Intents.Insert.NAME, "Jean-Claude"); // an example, there is other data available
startActivity(addContactIntent)
回答by Pir Fahim Shah
If you have a phone no and want to save it in your own application then use this code it will move you to the "create contact" page of the default contact app.
如果您有电话号码并希望将其保存在您自己的应用程序中,则使用此代码会将您移动到默认联系人应用程序的“创建联系人”页面。
Intent addContactIntent = new Intent(Intent.ACTION_INSERT);
addContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);
addContactIntent.putExtra(ContactsContract.Intents.Insert.PHONE,phnno.getText().toString());
startActivity(addContactIntent);
回答by Zarah
I was also trying to do this. I was able to launch the activity using Android 2.2. I haven't tried using/testing this in other SDK versions though.
我也试图这样做。我能够使用 Android 2.2 启动该活动。不过,我还没有尝试在其他 SDK 版本中使用/测试它。
Intent intent = new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, Uri.parse("tel:" + currentNum.getText())); //currentNum is my TextView, you can replace it with the number directly such as Uri.parse("tel:1293827")
intent.putExtra(ContactsContract.Intents.EXTRA_FORCE_CREATE, true); //skips the dialog box that asks the user to confirm creation of contacts
startActivity(intent);
Hope this might help.
希望这可能会有所帮助。
回答by mike.adc
If you need to add a phone number to an existing contact or create a new one (just as the native dialer does with a new phone number) this code might be just what you need:
如果您需要向现有联系人添加电话号码或创建新联系人(就像本地拨号器使用新电话号码一样),此代码可能正是您所需要的:
final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
intent.putExtra(Insert.PHONE, digits);
intent.setType(People.CONTENT_ITEM_TYPE);
startActivity(intent);
Just take a look at the Android's source codefor the DialpadFragment
class, search for the method getAddToContactIntent(String digits)
.
只要看看在Android的源代码的DialpadFragment
类,搜索方法getAddToContactIntent(String digits)
。
But as the Peopleclass is deprecated in api 10 you may want to use this line instead:
但由于People类在 api 10 中已弃用,您可能希望改用此行:
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
回答by Mushtaq Rahim
Intent localintent = new Intent("android.intent.action.INSERT",ContactsContract.Contacts.CONTENT_URI);
localintent.putExtra("phone", phoneNumber);
startActivity(localintent);