外部 SD カードに保存されている写真がいくつかあり、それらのサムネイルをGridView. 標準のギャラリー アプリケーションで写真フォルダーを参照できるため、メディア スキャナーがサムネイルを作成したことはわかっていますが、それらのサムネイルがどこにあるかがわからないため、GridView.
私はサムネイルを取得しようとしています:
MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), Long.parseLong(_imageUri.getLastPathSegment()), type, null)
_imageUriコンテンツ スキーマ Uri でなければならないので、私の問題は、画像のファイル スキーマ Uris をコンテンツ スキーマ Uris に変換する方法を見つけることです。残念ながら、私はそれを行う方法がわかりません。使用を推奨するSOスレッドをたくさん見てきましたが、Uri.parse()うまくいかないので、別の解決策を探しています。
私の現在のアプローチは、個々のファイルをスキャンするためにメディア スキャナーを使用し、コールバックUriからコンテンツを取得しようとすることです。onScanCompletedコードは次のとおりです。
public class SimpleMediaScanner implements MediaScannerConnectionClient {
    private MediaScannerConnection mMSC;
    private File mFile;
    private MyAdapter mAdapter;
    public SimpleMediaScanner(Context c, File f, MyAdapter a) {
        mAdapter = a;
        mFile = f;
        mMSC = new MediaScannerConnection(c, this);
        mMSC.connect();
    }
    @Override
    public void onMediaScannerConnected() {
        mMSC.scanFile(mFile.getAbsolutePath(), null);
    }
    @Override
    public void onScanCompleted(String path, Uri uri) {
        // Store the content scheme Uri of the scanned file
        // in a public field of the adapter
        mAdapter.mThumbUri = uri;
        mMSC.disconnect();
    }
}
このクラスを拡張からインスタンス化しますSimplecursorAdapter。
SimpleMediaScanner sms = new SimpleMediaScanner(mContext, new File(filepath), this);
残念ながら、戻りmAdapter.mThumbUri値は常にnullです。誰かが私が間違っていることを教えてもらえますか? ティア