LoginSignup
4
3

More than 5 years have passed since last update.

Chromeで外部SD上のファイルに直接アクセスできない問題 on Android

Last updated at Posted at 2018-01-09

 Androidスマホを使ってhtmlを作り、スマホからウェブページを更新する際、htmlファイルが外部sdカードの中に保存されているとうまくプレビューができない。Chromeでローカルファイルを見るにはアドレスバーに「file://」+「ファイルの絶対パス」(例:file:///storage/mywebpage/mypage.html)を入力する。しかし、外部sdカードに入っているファイルはこの方法では見ることができない。Chromeには外部sdにアクセスする権限がないからである。

 解決方法としては3つある。1つ目はChromeに外部sdに対するアクセス権限を与えること。2つ目はファイルマネージャーを介してChromeで開くこと。3つ目は開きたいファイルを内部ストレージに移すことである。
 1つ目は理想的だが一筋縄ではいかない険しい道だ。2つ目は例えばASUSのファイルマネージャーを使うと外部sdの中のファイルもChromeで見ることができる。ただし例えばhtmlファイルを見るとき、cssファイルが反映されないという問題が起こる。となると3つ目の「ファイルを内部ストレージに移す」が最も手っ取り早そうである。特にスマホでウェブページを作りたい方は、外部sdではなく内部ストレージで作業した方がいいだろう。

同様の報告

https://m.chiebukuro.yahoo.co.jp/detail/q14109504544
▲androidでSD内のhtmlファイルを標準ブラウザで読み込んだのですが、リンク先にアクセスできません。(Yahoo!知恵袋)

関連リンク

https://play.google.com/store/apps/details?id=com.asus.filemanager
▲ASUS ファイルマネージャー
 ちなみにこれでSD上のhtmlを閲覧したとき、パスは次のようになった。
content://com.asus.filemanager.OpenFileProvider/file/storage/DEA3-D49B/download/mywebpage.html

http://d.hatena.ne.jp/m-kawato/touch/20120101/1325385031
▲SDカード上のHTMLファイルをAndroidのブラウザで開く

https://www.kanzaki.com/docs/html/htminfo-uri.html
▲URIとファイルディレクトリ

補足

Yahoo!ファイルマネージャーでは内部ストレージ・外部SDのhtmlファイルをcssが反映された状態で見ることができた
 ただし、htmlファイルを開くアプリがAndroidシステムのHTMLビューアしか選択肢がなく、Chromeでは見ることができなかった。

 Chromeの場合ローカルファイルやインデックスをブックマークに登録できて便利だが、最低閲覧できればよいという場合はYahoo!ファイルマネージャーを使うのもいいかもしれない。この辺はもう好みの問題だろう()。

▼file://で表示したローカルファイルのインデックス
Screenshot_20180110-163141_crop_720x584.jpg
 ルート直下のディレクトリがsdcardとなっていますが、内部ストレージです。Androidの仕様らしい。

環境

Android 6.0.1
ASUS_Z010DB
Chrome/63.0.3239.111
ASUSファイルマネージャー 2.2.0.199
HTMLビューア 6.0.1(Androidシステム)
Yahoo!ファイルマネージャー 1.5.11

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3