【发布时间】:2014-11-20 15:47:24
【问题描述】:
尝试构建正确的查询以从 android 数据库中获取原始联系人。 有疑问:
String select = new StringBuilder( ContactsContract.RawContacts.CONTACT_ID + " = ? " + QUERY_AND_VALUE + stringBuilderTypeLocalContactSelection.toString() ).toString();
cursor = context.getContentResolver().query( ContactsContract.RawContacts.CONTENT_URI, columnSelection,select,new String[]{ String.valueOf( contactId ) }, null );
stringBuilderTypeLocalContactSelection 在哪里:
private static final StringBuilder stringBuilderTypeLocalContactSelection = new StringBuilder( ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'com.anddroid.contacts.sim'" +
QUERY_AND_VALUE + ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'com.google' " + " AND " + ContactsContract.RawContacts.ACCOUNT_TYPE
+ " <> 'com.android.contacts.sim' " + QUERY_AND_VALUE + ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'vnd.sec.contact.sim' "
+ QUERY_AND_VALUE + ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'com.viber.voip.account'" + QUERY_AND_VALUE + ContactsContract.RawContacts.DELETED + " = 0 " );
在此查询中尝试获取具有类型的原始联系人,这些类型在字符串生成器中未描述,但如果 ACCOUNT_TYPE 值为空,则游标不会从数据库中获取记录。当 ACCOUNT_TYPE = null 并且 cursor 也给我记录时,是否可以进行有效选择?
【问题讨论】: