Привет всем разработчикам андроидов! Пожалуйста, поможешь с одним вопросом. Я пытаюсьAndroid: sql запрос CONTENT_URI
Cursor cursor = getContentResolver().query(Contacts.CONTENT_URI,CONTACT_PROJECTION, n" _id = _id) GROUP BY ("+ Calls.NUMBER, null, "cnt DESC");
и это отлично работает в Android 2.3.3, но на Android 4.03 он разбился, потому что Android 4,03 не поддерживают в малейшей GROUP BY запросов. (https://stackoverflow.com/questions/8837544/android-ics-sqlite-error)
Так я решить, чтобы сформировать сырой SQL запрос к URI Contacts.CONTENT_URI с примерами кода
ContentProviderClient client = getContentResolver().acquireContentProviderClient(AUTHORITY);
SQLiteDatabase dbHandle= ((MyContentProvider)client.getLocalContentProvider()).getDbHandle();
Cursor cursor = dbHandle.rawQuery("SELECT _id, date, duration, number, type, name, numbertype, COUNT(*) as cnt FROM calls WHERE (1=1) GROUP BY (number) ORDER BY cnt DESC", null);
или с
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.query(db, projectionIn, selection, selectionArgs, groupBy, having, sortOrder)
, которые имеют параметр GroupBy.
Но я не понимаю, как получить dbHandle из CONTENT_URI или db имени CONTENT_URI во втором случае.
Спасибо заранее!
Но где я получу ContentProvider.query (...), если я использую CotentReslover.query (...). Я должен использовать dbHandle.rawQuery (...), но я не знаю, как получить dbHandle – Vitaly