7

画像が保存されたパスを使用して、Android デバイスからすべての画像/写真/壁紙を取得したいと考えています。

次のように、sdcard から画像を収集するためのコードを実装しました。

String[] mProjection = {
    MediaStore.Images.Media._ID,
    MediaStore.Images.Media.DATA
};

mCursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
    mProjection,
    null,
    null,
    MediaStore.Images.Media.DEFAULT_SORT_ORDER);

上記のコードから、sdcard からのみ画像を取得できます。しかし、画像がデバイスの電話メモリで利用可能な場合、画像/写真/壁紙を取得するにはどうすればよいですか? INTERNAL_CONTENT_URI を使用すると、wallapers 情報や他の画像情報が返されません

どんな体でも私を助けてください....

4

1 に答える 1

0

この答えを試してください。これはうまくいきます:

public static final int GALLERY_CODE = 322;

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(
    intent,
    "Select Picture"),
    GALLERY_CODE);


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//Assinging on corresponding import
super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == GALLERY_CODE && resultCode == RESULT_OK) {
        Uri selectedImageUri = data.getData();
        selectedImagePath = getPath(selectedImageUri);

        try {

            //add logic for coping file

        } catch (Exception e) {
        }
    }
}

public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);

    int column_index = cursor
        .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

    cursor.moveToFirst();
    return cursor.getString(column_index);
}
于 2013-01-16T12:48:28.320 に答える