【发布时间】:2015-05-04 21:18:05
【问题描述】:
这是用于获取联系信息的代码:
String id = data.getData().getLastPathSegment();
Cursor cursor = getActivity().getContentResolver()
.query(ContactsContract.Data.CONTENT_URI,
new String[] {ContactsContract.Data.DISPLAY_NAME},
ContactsContract.Data.CONTACT_ID + "=?",
new String[]{id},
null);
// short circuit if we didn't pick a contact
if (cursor.getCount() == 0) {
return;
}
String contact = "";
String contactName = "";
//code to get contact name
if (cursor.moveToFirst() && cursor.getString(0) != null) {
contact = contact + cursor.getString(0) + ",";
contactName = cursor.getString(0);
}
else {
contact = contact + ","; //changed
}
cursor.close();
// code to get phone number
cursor = getActivity().getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
newString[{ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE},
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?",
new String[]{id},null);
if (cursor.moveToFirst() && cursor.getString(0) != null) {
contact = contact + cursor.getString(0) + ",";
contact = contact + cursor.getString(0) + ",";
}
else {
contact = contact + ",,"; //changed
}
cursor.close();
//Code to get email
cursor = getActivity().getContentResolver()
.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[]{ContactsContract.CommonDataKinds.Email.ADDRESS},
ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=?",
new String[]{id},null);
if (cursor.moveToFirst() && cursor.getString(0) != null) {
contact = contact + cursor.getString(0);
}
cursor.close();
contact = contact.replace("+", "");
Log.i("TAG", "CONTACT INFO = " + contact);
我想做的事:
在这里,我通过内容提供商从联系人中查询联系人姓名、电话号码和电子邮件,并将所有三个连接成一个字符串,在字符串中用逗号分隔它们。
问题:
我得到了联系人姓名和电子邮件,没有任何问题。 但是,当我从联系人中选择一些联系人时,返回的电话号码为空。
返回空电话号码的联系人是来自我当前位置的不同国家/地区的电话号码。
我现在在加拿大,当我选择加拿大联系人时,我得到了正确的电话号码。
但是,当我从印度选择电话号码时,该号码不会返回,而是会得到空结果。
当我选择带有“12345”或“5555555555”等数字的联系人时,也会发生同样的情况。
我的问题
会不会是Android在尝试验证号码的真实性并返回一个空号码,如果它发现电话号码无效? *(可能不是!一定是我的错!)*
我该如何解决这个问题?我不能像用户在联系人中保存电话号码一样获取电话号码的值吗?
对于代码或我的问题中的任何明确性,我深表歉意。我是一名新手程序员,非常感谢您的所有投入!
【问题讨论】:
标签: android android-contentprovider android-contacts android-cursor