我对如何使用数据有点困惑。有电话号码。
我已经插入了联系人以及一些附加数据,我想检索其中的一些联系人。
如果我运行以下代码,一切正常:

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_号码?相同表中的data.display_name没有问题。我们应该如何使用数据。那么你有电话号码吗?
谢谢你的回答

最佳答案

Use 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/

10-12 04:15