Android:调用特定版API

时间:2012-04-30 09:42:24

标签: android api

我的应用程序(从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,联系人将被复制,具体取决于联系人的电话号码数量。

由于

1 个答案:

答案 0 :(得分:0)

Android 4. +向后兼容,所以它应该运行您的应用程序,即使它使用Android 2.3.3 api。除非您使用特定于4.0的api功能。您最好的选择是将您的应用程序构建到2.3.3,然后在ICS 4.0上进行测试......我希望这有助于