-1

在 android 的联系人数据库中,我试图获取一组具有相同帐户名称的记录。下面给出的是查询的“选择”。

selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " =  '1' AND " + ContactsContract.Contacts._ID + " IN  ( SELECT  " + RawContacts.CONTACT_ID +" FROM  raw_contacts WHERE " + RawContacts.ACCOUNT_NAME + "= '" + selectionCriteria +"' )" ;

Cursor = managedQuery(Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts._ID,Contacts.DISPLAY_NAME}, selection, null, order);

这在 android 版本 2.3 中运行良好 ..但在 jellybean 中,我不能直接使用数据库名称作为“raw_contacts”,因为它已更改为“value_raw_contacts”。

我怎样才能使用正确的 sql 命令来实现这一点,而不直接提及像“raw_contacts”这样的数据库名称,而不是使用它的 CONTENT_URI 。

请帮忙。

4

1 回答 1

0
static String CONTACTS_TABLE_NAME = "raw_contacts";

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
     ThisClass.CONTACTS_TABLE_NAME = "value_raw_contacts";
}

http://developer.android.com/reference/android/os/Build.VERSION_CODES.html

于 2012-09-26T16:50:58.750 回答