0

我的应用程序(从 Android 2.3.3 开始)还必须支持 Android Ice Cream OS 4.0.3。一切正常,但是当使用 GROUP BY 并且 SQL 抱怨这会导致崩溃时,来自 Content Resolver 的查询会在圆括号中产生奇怪的事情。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 回答