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作为结果代码。任何想法如何解决这个问题?
感谢。
答案 0 :(得分:0)
不幸的是,许多制造商都在调整他们的SDK,并且许多应用程序无法正确实现这一点,请将其称为"Android Pattern"
,您应该返回正确的RESTULT_CODE
。我在Facebook
,Twitter
等应用程序中也遇到了很多类似的行为,如果用户共享/取消了操作,它们甚至无法返回正确的结果代码。
我不认为您的代码存在问题,很可能是问题出在您正在启动的应用程序中,但是无法返回正确的结果。
答案 1 :(得分:0)
甚至在“股票Android”(JB,Galaxy Nexus)上也会发生这种情况。似乎唯一的方法是忽略结果代码并重新读取联系人而不管它(请注意Intent数据也将为null,因此您必须打开编辑活动时使用的联系人Uri )。
答案 2 :(得分:0)
添加以下内容为我解决了类似的问题:
intent.putExtra("finishActivityOnSaveCompleted", true);