前提・実現したいこと
タイトル通りです。
Intent を使ってギャラリー等から取得したファイルパスの、実体のタイプを判定する方法が知りたいです。
Android SDK のクラス、メソッドで該当のものがない場合、サードパーティのライブラリでの対応もやむ無しと考えています。
試したこと
Kotlin
1 val intent = Intent(Intent.ACTION_PICK).apply { 2 type = "image/*" 3 } 4 startActivityForResult(intent, 10000)
上記の記述でギャラリーアプリを起動し、 onActivyResult で選択した画像ファイルのパスを取得できました。
ここで取得したファイルが、 png, jpeg, webp、その他(gif等)のどの形式なのかを知りたいのです。
Kotlin
1 val uri = data?.data 2 val mimeType = context?.contentResolver?.getType(uri)
contentResolver で取得したtypeは、ファイル名で判定しているようで、
ファイル名の拡張子が jpg
で中身は png
の場合に、 image/jpeg
と返してしまいます。
(期待するタイプは image/png
でした)
ファイル名に関係なく、実体の形式を取得するにはどうすればいいのでしょうか?
補足情報(FW/ツールのバージョンなど)
Android Studio 4.1.2
Kotlin 1.4.30
minSdkVersion 21
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。