选择联系人后未执行onActivityResult

时间:2019-05-03 18:19:36

标签: java android

在我选择一个联系人以通过意图显示姓名和电话号码后,onActivityResult不会执行。

我在这里寻找一些答案,但是nono解决了我的问题。当我开始开发该功能时,它起作用了,但是经过一些验证(如果获得许可),它停止了工作。

contact.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           if(GeneralUtility.validatePermission(context, Manifest.permission.READ_CONTACTS)){
               initPickContacts();
           }else{
               GeneralUtility.navigateSettingByApp(context);
               Toast.makeText(context, "Permiso no obtenido", Toast.LENGTH_SHORT).show();
           }
        }
    });

public void initPickContacts(){
    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
    startActivityForResult(intent, PICK_CONTACT_REQUEST);
    Intent i = new Intent(Intent.ACTION_PICK, 
    ContactsContract.Contacts.CONTENT_URI);
    startActivityForResult(i, PICK_CONTACT_REQUEST);
}

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == PICK_CONTACT_REQUEST) {
        if (resultCode == RESULT_OK) {
            Uri contactUri = intent.getData();
            renderContact(contactUri);
        }
    }
}

我需要获取联系人的uri。

1 个答案:

答案 0 :(得分:0)

现在可以使用。我将PICK_CONTACT_REQUEST的值更改为1,并且onActivityResult有效。