0

私のアプリケーション (Android 2.3.3 で開始) は、Android Ice Cream OS 4.0.3 もサポートする必要があります。すべて正常に動作しますが、GROUP BY が使用されている場合、Content Resolver からのクエリは丸括弧で奇妙なことを行い、SQL はそれについてクラッシュを引き起こします。同じことは Android API レベル 10 でも見られません。そうは言っても、ここで私の質問:アイスクリームでも古いバージョンまたは API (私の場合は 10) を使用できますか? もちろん、私の問題に対するより良い解決策があれば、それは歓迎されます。

少し早いですがお礼を。

コード (簡易版) は次のとおりです。

ContentResolver contentResolver = context.getContentResolver();
Uri uri = Uri.withAppendedPath( ContactsContract.Data.CONTENT_URI, "");
StringBuilder where = new StringBuilder();
allContactCursor = contentResolver.query( uri,
PROJECTION_CONTACT,
"1) GROUP BY ( "+ RawContacts.CONTACT_ID,
null,
ContactsContract.Contacts.DISPLAY_NAME + " COLLATE NOCASE");

問題は、Ice Cream Sandwich が Sqlite クエリのコンパイル中に GROUP BY インジェクションを許可しないことです。代わりに、これは Gingerbread 2.3.3 で機能します。GROUP BY がないと、連絡先の電話番号の数に応じて連絡先が複製されます。

ありがとう

4

1 に答える 1

0

Android 4.+ は下位互換性があるため、Android 2.3.3 API を使用している場合でもアプリケーションを正常に実行できます。4.0 に固有の API 機能を使用している場合を除きます。あなたの最善の策は、アプリケーションを 2.3.3 にビルドしてから ICS 4.0 でテストすることです...これがお役に立てば幸いです

于 2012-05-02T15:21:01.333 に答える