実現したいこと
Unity アプリを Android ビルドしスマホで実行しています。そのアプリでスマホの sdcard 内の .csv ファイルを読み込みたいです。
現状のアプリでは、/sdcard/Download/aaa.png ファイルを読む事はできています。
使用しているのは Fileクラスで、File.ReadAllBytes を使用しています。
Unity の PlayerSetting にて WritePermission はExternal(SDCard) にしているので、manifest のパーミッションは設定されている状態です。
このファイルの拡張子を.csv に変更すると、読み込みに失敗します。
ログ:
MediaProvider: Permission to access file: /storage/emulated/0/Download/aaa.csv is denied
別のテキストファイルである /sdcard/Download/bbb.csv ファイルの拡張子を .png に変更する(→ bbb.png)とファイルとしては読み込みに成功します。ただ、メディアではないと警告が出力されます(警告内容は当然といえば当然です)
ログ:
ExifInterface: Invalid image: ExifInterface got an unsupported image format file(ExifInterface supports JPEG and some RAW image formats only) or a corrupted JPEG file to ExifInterface.
拡張子がメディアとして認知されているファイル(.png、.jpg 等)しか読み込めないのでしょうか。一般的な拡張子(.txt、.csv 等)のファイルを読み込むには何か設定が必要なのでしょうか。
ご存じの方、よろしくお願いいたします。
補足
File クラスだけでなく、StreamReader クラスでも試していますが、状況は変わりません。
ファイルの内容がどうかという事ではなく、ファイル名(拡張子)により状況が変化しています。
スマホの設定でアプリの権限を変更する設定画面がありますが、「ファイルとメディアの権限」の選択するところの文言は
・メディアへのアクセスのみを許可
・許可しない
の2択になっています。ここでいう「メディア」が画像、動画、音楽などの「メディア」を指しているとすると、csvの様なファイルは対象外という事になるのでしょうか。。。
環境
Unity:2021.3.5f1
PlayerSetting
・MinimumApiLevel:Android11.0(API level 30)
・Target API Level:Automatic(Highest installed)
・WritePermission:External(SDCard)
スマホ:Xperia5Ⅱ(SOG02)
・Androidバージョン:12
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/04/25 09:07