如何获取所有安卓联系人,但不包括SIM卡中的联系人?

13

有没有可能用一条查询语句来完成这个任务?

据我所知,SIM卡联系人的内容URI是content://icc/adn


请在Github上检出一个库,使用简单易用的API获取联系人。 - Nitesh Tiwari
1个回答

21

这非常简单!:)

Cursor cursor = mContentResolver.query(
   RawContacts.CONTENT_URI,
   new String[]{RawContacts._ID,RawContacts.ACCOUNT_TYPE},
   RawContacts.ACCOUNT_TYPE + " <> 'com.anddroid.contacts.sim' "
    + " AND " + RawContacts.ACCOUNT_TYPE + " <> 'com.google' " //if you don't want to google contacts also
   ,
   null,
   null);

1
请问您能否编写代码以从此光标中获取号码和姓名。我已经编写了以下代码:"while(cursor.moveToNext()){String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); Log.i("all contacts",phoneNumber+"->"+name); }" - Nency
但是出现了错误,如下所示:“对于字段槽0,-1的请求无效。numRows = 46,numColumns = 2”。 - Nency
1
'com.anddroid.contacts.sim' 是一个手动值。没有任何常量与其相关。 - tana
@tana 你如何知道当前设备可用的可能常量有哪些?是否有一种方法可以获取SIM卡/本地存储联系人的正确常量,无论设备如何? - android developer
抱歉,我不知道这个常量。 - tana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接