こんにちはすべてのアンドロイドの開発者! 1つの質問で助けてください。 私はAndroid:CONTENT_URIへのSQLクエリ
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は、BYクエリもうGROUPをサポートしていないので、Androidの4.03で、それがクラッシュしています。 (https://stackoverflow.com/questions/8837544/android-ics-sqlite-error)
だから私は、例のコード
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);
またはGROUPBYパラメータを持っている
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.query(db, projectionIn, selection, selectionArgs, groupBy, having, sortOrder)
で持つURI Contacts.CONTENT_URIに生のSQLクエリを形成することを決定しました。
しかし、私はCONTENT_URIまたはCONTENT_URIのdb名から2番目のケースでdbHandleを取得する方法を理解していません。
ありがとうございました!
しかし、ここで私はCotentReslover.query(...)を使用している場合ContentProvider.query(...)を取得します。私はdbHandle.rawQuery(...)を使用する必要がありますが、私はdbHandleを取得する方法がわかりません – Vitaly