-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では、「value_raw_contacts」に変更されたため、データベース名を「raw_contacts」として直接使用できません。

CONTENT_URI を使用する代わりに、「raw_contacts」のようなデータベース名を直接言及せずに、適切なSQLコマンドでこれを達成するにはどうすればよいですか。

助けてください。

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 に答える