【Android】Android 11 (API 30) 以降でメディアファイル(画像/音楽 等)以外をアプリで使う 
2023/05/01 Mon [edit]
VRM Live Viewer でも「.vmd が読み込めなくなった」のような質問が多くなったのだが、ずっと外部サイトの情報を参考にしていたんだよね。
(参考) Android 11で画像やデータが消えた、アクセスできない、の原因はアクセス権限の変更、対処法アリ
でも、最近 Android 13 に換えたので、実際に試してみると、上記の方法だけでは足りない事がわかった。きちんと調べてみると、Android 11 以降は「メディアファイル(画像/音楽など)」と「それ以外のファイル」で扱いが異なっていて、VRM や GLB、VMD などは「それ以外のファイル(メディア以外のファイル)」に分類されてしまうため、アクセス制限がされてしまうらしい(画像/音楽などは上記の方法でも使える)。
試しに「ストレージ デバイスのすべてのファイルを管理する」権限を与えてみた所、「それ以外のファイル(VRM や GLB、VMD 等)」も読み込めるようになったので、一応、一般ユーザー向けと開発者向けとして、具体的手順(例)を載せておこう。
・ストレージ デバイスのすべてのファイルを管理する
(※) Galaxy Android 13 (API 33) / VRM Live Viewer v3.7 で確認
■Android 端末での手順 (一般ユーザー向け)
※機種(端末)やバージョンによって文言は違うかも知れません。
* The wording may differ depending on the model (device) or version.
1. [設定] から [セキュリティおよびプライバシー] をタップする
From [Settings], tap [Security and privacy]

2. [セキュリティおよびプライバシー] から [プライバシー] をタップする
From [Security and privacy], tap [Privacy]

3. [プライバシー] から [権限マネージャー] をタップする
From [Privacy], tap [Permission manager]

4. [権限マネージャー] から [ファイルとメディア] をタップする
From [Permission manager], tap [Files and media]

5. [ファイルとメディア] から [すべてのファイルにアクセスできるアプリをもっと見る] をタップする
From [Files and media], tap [See more apps that can access all files]

6. [全てのファイルにアクセスできるアプリ] の一覧から、対象のアプリを探しオンにする(ここでは VRM Live Viewer を例にしてるが、アプリ側にも権限を与える必要がある)。
From [All files access], Find the app you want and turn it on.

これでメディアファイル(画像/音楽 等)以外のファイルもアプリでアクセスできるようになる(~アクセスを許可しますか?で許可にしたときのみ)。
また Android 11 以降では、しばらくアプリを使用していないと自動的に権限削除されるようになったらしい。その場合は毎回許可 or 設定しなければならないので、アプリのアイコンを長押しし、[アプリ情報] からアプリ自体の [アプリが未使用の場合に権限を削除] をオフにしておくと良い。

どうやら Google は今後 SDカード等、外部ファイルを読み込ませるのを少しでもやめさせ、ネットサービス等で落としたもの(VRoidHub 連携などは普通に使える)を中心にしたいらしいね。画像や音楽などはともかく、それ以外のファイルの扱いについては、まだまだセキュリティ強化の名目で使いづらくなりそうだ。
■Android でのパーミッションやインテント等 (開発者向け)
※「すべてのファイルを管理」パーミッションを付与した場合、Google Play で審査が通らなくなる場合があるようです。ファイルマネージャーやバックアップアプリなど、特定の用途以外のアプリでの利用は注意して下さい。
・Google Play に関する注意事項
●「すべてのファイルを管理」のパーミッション (AndroidManifest.xml)
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
(参考) すべてのファイルへのアクセスをリクエストする
●インテント (ユーザーをシステム設定のページに移動)
ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
めっちゃ面倒くさい…。ただの偶然だが、Google Play に出さなくて良かった気がする(←無料アプリでも登録料必要なのが馬鹿馬鹿しくてやらなかっただけ(笑))。
- 関連記事
category: Android
トラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/427-dcd271f5
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |