如何获取所有 android 联系人但没有 SIM 卡上的联系人

Posted

技术标签:

【中文标题】如何获取所有 android 联系人但没有 SIM 卡上的联系人【英文标题】:How to get all android contacts but without those which are on SIM 【发布时间】:2011-05-19 07:44:39 【问题描述】:

可以在一个查询中完成吗?

据我所知,sim 联系人的内容 uri 是 content://icc/adn

【问题讨论】:

请在Github 上查看一个库,以使用简单易用的 api 获取联系人。 【参考方案1】:

这很容易! :)

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);

【讨论】:

你能写出如何从这个光标中获取数字和名字的代码吗?我将代码写为“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("所有联系人",phoneNumber+"->"+name); 但收到类似“: Bad request for field slot 0,-1. numRows = 46, numColumns = 2 之类的错误 'com.anddroid.contacts.sim' 是手动值。有什么常量可以参考一下。 @tana 你怎么知道哪些可能的常量可用于当前设备?有没有办法为联系人的 SIM/本地存储获取正确的联系人,无论设备如何? 对不起,我不知道常数

以上是关于如何获取所有 android 联系人但没有 SIM 卡上的联系人的主要内容,如果未能解决你的问题,请参考以下文章

Android - 创建新的 SIM 卡联系人

以编程方式阅读 Android 中的 Sim 联系人?

如何获取 Android 手机所有者的名字和姓氏?

如何在双卡手机中仅获取一张 SIM 卡的短信?

以编程方式获取 android 联系人显示选项

将联系人直接保存到 iOS 中的 sim 卡中