【问题标题】:Add contacts in Android 4.2 not notifying app在 Android 4.2 中添加联系人不通知应用程序
【发布时间】:2013-02-15 00:49:46
【问题描述】:

我正在努力为应用添加联系人选择器功能,以及将应用中的联系人添加到本机联系人管理器的功能。对于插入,我将像这样启动联系人管理器:

Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);

intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, mCurrentNumber);
intent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, "MyType");

mActivity.startActivityForResult(intent, ADD_CONTACT);

这将成功打开联系人管理器并使用指定的电话号码填充它。但是,在我的 Nexus 7 平板电脑上,当联系人管理器返回时,它会返回主屏幕并且不会向我的应用发送任何类型的响应。这可以正常工作并在我的 ICS 设备上按预期返回,但我不知道这是否是因为 ICS 设备使用的是制造商的自定义联系人管理器,而 Nexus 7 是 Google 的。

谁能解释一下这个问题?我启动联系人管理器的方式有问题吗?

编辑: 我还应该补充一点,如果我从 Nexus 7 的联系人管理器选项菜单中选择“放弃”,它确实会按预期返回到我的应用程序。只有当我选择“完成”按钮时才会出现问题。选择“完成”导航到联系人管理器的主菜单,此时任何退出联系人管理器的尝试都会将用户带到主屏幕。

【问题讨论】:

    标签: android contactscontract android-4.2-jelly-bean


    【解决方案1】:

    原来解决这个问题的方法是添加

    intent.putExtra("finishActivityOnSaveCompleted", true);
    

    到联系意图。这绕过了联系人管理器的详细信息视图并将控制权返回给我的应用程序,并正确调用了 onActivityResult。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多