我想调用联系人选择器,将人名、电话和电子邮件获取到字符串中,并使用意图将它们发送到另一个活动。到目前为止,这个方法可以工作:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);
// ...
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
Intent intent = new Intent(CurrentActivity.this, NewActivity.class);
intent.putExtra("name", name);
startActivityForResult(intent, 0);
}
}
}
但是如果我添加了以下内容:String number = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER));
它强制关闭了
也许有其他方法可以获取他们的号码?
ContactsContract.Contacts.Entity
,链接在这里:https://dev59.com/WWYq5IYBdhLWcg3w8VG8#14082019 - Bianca Daniciuc