3

アプリケーションでは、ユーザーは画像を選択できます。ギャラリーを開始するには、次のコードを使用します。

Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, ACTIVITY_SELECT_IMAGE);

onActivityResultメソッドでパスを出力すると、のような画像パスが得られます/external/images/media/5615。画像をサーバーにアップロードする必要があるので、画像の拡張子を知りたいのですが。拡張子は異なる場合があります。

4

1 に答える 1

2

取得しているのは、MediaStoreが画像を取得するために使用するパスです。次のコードは、インテントから結果を取得し、それに添付されたファイル名を取得します。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == ACTIVITY_SELECT_IMAGE && resultCode == RESULT_OK && null != data) {
            Uri selectedImage = data.getData();
            Log.i(TAG, "" + selectedImage.toString());
            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();

            Log.i(TAG, "" + picturePath);

            //Do whatever with picturePath

        }
于 2012-09-21T15:08:25.237 に答える