2012-04-30 51 views
0

我的應用程序(從Android 2.3.3開始)也支持Android Ice Cream OS 4.0.3。 所有工作正常,但是當使用GROUP BY並且SQL抱怨發生崩潰時,Content Resolver的查詢使用圓括號產生奇怪的事情。 Android API級別10沒有出現這種情況。 這就是說,這裏是我的問題:是否有可能在冰淇淋上使用舊版本或API(在我的情況下爲10)? 當然,如果有更好的解決方案,我的問題將受到歡迎。Android:調用特定版本的API

提前致謝。

代碼(簡化版本)下列之一:

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"); 

的問題是冰淇淋三明治不允許GROUP BY注射在編譯sqlite的查詢,這一點,相反,作品薑餅2.3.3。 如果沒有GROUP BY,聯繫人將根據聯繫人的電話號碼數量進行重複。

感謝

+0

不是。設備上有一個版本。關於您的問題,如果您顯示代碼和崩潰日誌,這將有所幫助。 – MByD

回答

0

Android的4 +是向後兼容的,所以應該即使採用了android 2.3.3 API,它運行應用程序的罰款。除非您使用特定於4.0的api功能。您最好的選擇是將您的應用程序構建到2.3.3,然後在ICS 4.0上進行測試...我希望這可以幫助

+0

嗨,我知道Android會設置兼容性標誌,當一個應用程序編譯的舊API級別在更近的一個執行。我已經完成了你的建議,並且我所描述的問題也被看到了。 – MadBlack