有类似的问题,但我无法找到答案。在此先感谢您的帮助。
我正在尝试从新添加的联系人处获取数据信息。 以下是我的代码段:
public class MapActivity extends FragmentActivity {
...
saveButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent addContactIntent = new Intent(Intent.ACTION_INSERT);
addContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);
addContactIntent.putExtra(ContactsContract.Intents.Insert.POSTAL , address);
startActivityForResult(addContactIntent, ADD_NEW_CONTACT);
}
});
我致电联系人并将地址放在"地址"字段。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ADD_NEW_CONTACT) {
if(resultCode == RESULT_OK) {
...
}
}
}
但是,每当我保存联系人时,resultCode总是为0(注意联系人应用程序中没有"保存"按钮,我只需按下'后退'按钮即可保存它)。我知道它已被保存,因为我可以在联系人应用中看到已保存的联系人。 (当然,当我选择" Discard"时它会返回0。)
答案 0 :(得分:0)
我遇到了同样的问题。在我的例子中,解决方案是忽略Activity.RESULT_OK并关注我知道可用的两个值,即requestCode和Address(联系电话号码)。
然后在onActivityResult中,使用Contact.Address在Contacts API上创建一个查询,找到添加/编辑的联系人,并以这种方式提取我需要的任何数据。 (当然,如果OP删除了一个联系人,这将无效!)
在这个OP的情况下,POSTAL列在startActivityForResult之前是已知的,因此接下来查询应该基于该数据。
希望这有帮助!