4

android 版本 4.0.3 会出现此问题。我正在使用 Android Contacts 2.0 API 添加带有自定义 RawContacts.ACCOUNT_TYPE 的联系人。作为第二步,我想使用 Intent.ACTION_EDIT 使用以下代码编辑这些联系人:

Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setData(contactUri);
startActivityForResult(intent, EDIT_CONTACT_RESULT);

Intent 正在打开 android 内置的编辑联系人活动。但是当我按下完成时,它会将我转发到当前编辑的联系人的联系人视图活动。如果我然后点击后退按钮,我会被转发回我的应用程序。问题是 onActivityResult(); 总是返回 RESULT_CANCELED 作为结果代码。任何想法如何解决这个问题?

谢谢。

4

3 回答 3

0

不幸的是,许多制造商调整了他们的 SDK,并且许多应用程序无法正确实现这一点,让我们"Android Pattern"在应该返回正确的RESTULT_CODE. Facebook我在,等应用程序中也遇到了很多类似的行为,Twitter如果用户共享/或取消了操作,即使它们也无法返回正确的结果代码。

我认为您的代码没有问题,很可能问题出在您正在启动的应用程序中,该应用程序无法返回正确的结果。

于 2012-05-30T20:26:04.073 回答
0

即使在“普通 Android”(JB、Galaxy Nexus)上也会发生这种情况。似乎解决它的唯一方法是忽略结果代码并再次重新读取联系人(请注意,意图数据也将为空,因此您必须使用打开编辑活动时使用的联系人 Uri )。

于 2012-08-08T18:12:35.003 回答
0

添加以下内容为我解决了类似的问题:

intent.putExtra("finishActivityOnSaveCompleted", true);
于 2014-03-29T19:40:34.133 回答