【发布时间】:2017-08-28 09:03:34
【问题描述】:
我正在尝试在 android 中获取电话号码作为字符串,我成功联系并从他那里获取电话号码,但日志中的结果是 data1,号码是 32821。我不明白我的问题。
这是我的代码:
public void getContact(View view) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, 10);
}
Intent contactsIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
this.pickContact = 1;
startActivityForResult(contactsIntent, this.pickContact);
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
if(reqCode == this.pickContact) {
if (resultCode == Activity.RESULT_OK) {
Log.d("ContactsH", "ResOK");
Uri contactData = data.getData();
Cursor contact = getContentResolver().query(contactData, null, null, null, null);
if (contact.moveToFirst()) {
String phoneNumber = ContactsContract.CommonDataKinds.Phone.NUMBER;
Log.d("ContactsH", "Calling to:"+phoneNumber);
contact.close();
this.callByNumber(phoneNumber);
}
}
} else {
Log.d("ContactsH", "Canceled");
}
}
有什么帮助吗?
【问题讨论】:
-
String name = contact.getString(contact.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));没有给你名字吗?你没有为这个号码尝试过同样的事情吗? -
很抱歉,这对我不起作用,因为无论我选择谁,它都显示相同的数字。
-
是的,我确实尝试过,但它给了我例外
-
@cricket_007 很抱歉,你能具体写信给我吗?
标签: java android android-contacts google-contacts-api