我对如何使用 Data.HAS_PHONE_NUMBER 有点困惑。 我已经插入了联系人以及一些额外的数据,我想检索其中的一些联系人。
如果我运行以下代码,一切都很好:
Uri uri = Data.CONTENT_URI;
String[] projection = new String[]{Data.CONTACT_ID, Data.DISPLAY_NAME };
String selection = Data.DATA4+" = ?";
String[] selectionArgs = new String[] {MY_VALUE};
Cursor truContactCursor = mContext.getContentResolver().query(uri, projection, selection, selectionArgs, null);
现在,我想知道这些联系人是否有电话号码,所以我将 HAS_PHONE_NUMBER 添加到投影中,如下所示:
String[] projection = new String[]{Data.CONTACT_ID, Data.DISPLAY_NAME, Data.HAS_PHONE_NUMBER };
运行查询时,我得到以下执行:
java.lang.IllegalArgumentException: Invalid column has_phone_number
为什么我无法访问 HAS_PHONE_NUMBER?在同一张表中的 Data.DISPLAY_NAME 没有问题。那么我们应该如何使用 Data.HAS_PHONE_NUMBER?
感谢您的回答
最佳答案
使用 HAS_PHONE_NUMBER 用于检查联系人是否至少有一个电话号码。示例:
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if(cursor.getCount()>0){
while (cursor.moveToNext()) {
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));id
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if(cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))>0){
//Query phone here.
}
或加入投影:
String [] projection = {ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.HAS_PHONE_NUMBER};
关于android - 如何使用 Data.HAS_PHONE_NUMBER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722531/