android開発/Javaでギャラリーから写真を選択して、そのファイルのパス情報を取得したいです。

実現したいこと

android開発/Javaでギャラリーから写真を選択して、そのファイルのパス情報を取得したいです。

質問

ActivityResultLauncherを使用して写真の操作をしています。

private final ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), result -> { if (result.getResultCode() == Activity.RESULT_OK) { Intent resultData = result.getData(); Uri uri = resultData.getData(); Cursor c = getContentResolver().query(uri, new String[] { MediaStore.MediaColumns.DATA }, null, null, null); c.moveToFirst(); String path = c.getString(0); c.close(); } });

・pathの値は何も表示されませんでした。
・uri.toString()は「content://com.android.providers.media.documents/document/image%3A1000000040」と表示されます。
・「new String[] { MediaStore.MediaColumns.DATA }」の所をnullにしてc.getString(2)を表示すると「IMG_2022-12-27-15-49-04-469.jpg」でした。
ここの引数の気もするのですが分かりませんでした。

このソースもしくは違うやり方でも良いので絶対パスの取得方法をご教授下さい。

コメントを投稿

0 コメント