我怎样才能在Android中启动“添加联系人”活动?
你能告诉我如何启动添加联系人的活动在Android? 谢谢。
这篇文章可能会帮助你或至less指出你在正确的方向。
希望这可以帮助。
更新05/11/2015:
根据评论,请查看vickey的答案,下面是适当的解决scheme。
API Level 5及以上解决scheme
// 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);
这两条线有诀窍:
Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI); startActivity(intent);
这应该是你正在寻找的片段:
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)
如果你有一个电话号码,并希望将其保存在自己的应用程序,然后使用此代码,它会将您移动到默认联系人应用程序的“创build联系人”页面。
Intent addContactIntent = new Intent(Intent.ACTION_INSERT); addContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE); addContactIntent.putExtra(ContactsContract.Intents.Insert.PHONE,phnno.getText().toString()); startActivity(addContactIntent);
我也试图做到这一点。 我能够使用Android 2.2启动活动。 我还没有尝试过在其他SDK版本中使用/testing。
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);
希望这可能有帮助。
如果您需要将电话号码添加到现有联系人或创build新电话号码(就像本机拨号程序使用新的电话号码一样),则此代码可能正是您所需要的:
final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT); intent.putExtra(Insert.PHONE, digits); intent.setType(People.CONTENT_ITEM_TYPE); startActivity(intent);
只要看看Android的DialpadFragment
类的源代码 ,search方法getAddToContactIntent(String digits)
。
但是,由于People类在api 10中被弃用,您可能需要使用这一行:
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
Intent localintent = new Intent("android.intent.action.INSERT",ContactsContract.Contacts.CONTENT_URI); localintent.putExtra("phone", phoneNumber); startActivity(localintent);
- 如何查找Android版Google Play服务版本
- Android – 从@drawablestring打开资源
- 无法加载模块描述符类:未find类“com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor”
- 显示在右边的白色酒吧的webview
- Android Studio上是否有快捷方式将文本转换为大写?
- Google地图Android API v2授权失败
- findcom.google.android.gms:play-services:8.4.0,但是google-services插件需要8.3.0版本
- Google Maps API v2:如何让标记点击?
- Adb不会启动