你好每个机器人开发者!请你帮忙回答一个问题。我在尝试
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)
所以我决定用示例代码对 URI Contacts.CONTENT_URI 形成原始 sql 查询
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 参数的。
但我不明白如何在第二种情况下从 CONTENT_URI 或 CONTENT_URI 的数据库名称中获取 dbHandle。
提前致谢!