sqlite db に 4 つの列を格納するかなり基本的なコンテンツ プロバイダーがあります。これらの列は、自動インクリメント キー、テキストとしての URL、long、および画像の blob です。URL からクエリを実行しようとすると、データベースに行が存在することを知っていても、結果が得られません。選択した URL を取得するには、その URL に対して何をする必要がありますか。
//called when storing
private void addKey(String url, final Bitmap bm) {
ContentValues values = new ContentValues();
values.put(ImagesContentProvider.URL, "'" + url + "'");
values.put(ImagesContentProvider.TIME, System.currentTimeMillis());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bm.compress(CompressFormat.PNG, 0 /* ignored for PNG */, bos);
values.put(ImagesContentProvider.BITMAP, bos.toByteArray());
cr.insert(ImagesContentProvider.CONTENT_URI, values); //cr is content resolver
}
//called for querying
private void query(String url) {
String selection = ImagesContentProvider.URL + "='" + url+ "'";
Cursor resultsCursor = cr.query(ImagesContentProvider.CONTENT_URI,
null, selection, null, null);
if (!resultsCursor.moveToFirst()) {
Log.d(TAG, "Not found in DB");
resultsCursor.close();
} else {
Log.e(TAG, "found in DB");
resultsCursor.close();
}
}