我希望我的应用程序通过Android标准联系人界面提示用户创建新联系人,然后能够从新创建的联系人中读取信息。
我的代码基于这个网站上的"添加新联系人"。
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(Contacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, number);
startActivityForResult(intent, PICK_CONTACT);
然后
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Intent intent = new Intent(this, Foo.class);
Uri uri = data.getData(); //I get nullpointer here on ICS
intent.putExtra("contact", ContactAccessor.getInstance().loadContact(this, uri));
startActivity(intent);
finish();
}
这段代码在Android 2.2和2.3上运行正常。它启动联系人应用程序,让用户输入姓名和电子邮件地址,并在他们完成并点击“确定”或“保存”或“其他”后返回到我的应用程序,我可以读取他们输入的内容。然而,在Android 4.0(ICS)上,当用户完成创建联系人时它不会返回到我的应用程序。并且当我通过返回按钮退出联系人视图时,不包括任何带有联系人信息的intent。
我应该使用哪个intent来在ICS上获得相同的行为?