私が抱えている問題を理解するために少し助けが必要です。私は電話上のすべての画像を照会してGridViewに表示するアプリケーションを持っています。私はこれを行い、リストに値を記入することができました。問題は、リストにアクセスして、クエリのアイテムから情報を取得しているときです。カーソルが項目がMediaStoreを使用してGridViewにすべての画像を表示する方法
/mnt/sdcard/images/media/file.jpg
のファイルパスを持っていますが、パスが唯一
/SDカード/画像/メディア/ファイルであることを私に言っています.jpg
これは私がリストを作成するために使用したコードです。
// Set up an array of the Thumbnail Image ID column we want
String[] projection = {MediaStore.Images.Thumbnails._ID};
// Create the cursor pointing to the SDCard
//returns the cursor that checks the sdcard for Thumbnail id's
cursor = managedQuery(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection,
// Which columns to return
null,
// Return all rows
null,
MediaStore.Images.Thumbnails.IMAGE_ID);
// Get the column index of the Thumbnails Image ID
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
項目は、実際に表示するのですが、私は別のカーソルからそれらを取得するときにパスが間違っています。 ?????? 私は少し失われています。
エミュレータと物理デバイスで使用しました。同じ問題。 パスがNULLでプログラムがクラッシュしたというエラーが表示されます。
MediaStoreにEXTERNAL_CONTENT_URIを照会し、必要な正しいパスを与える方法がありますか? また、私は自分の物理的な電話でそれを使用したときに、画像と私のSDカード上の最初のディレクトリにクエリが停止し、より多くのディレクトリをクエリする方法?