浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【androidJava】path.xml内で複数のパスを記述するのは避けましょう

fileproviderを使う際に必要なcontentsスキームから成るディレクトリを作るには、pathのxmlファイルが必要になります。

このファイル内にはパスを二つ以上書くこともできるのですが、そうすると下から順番に読み込んでしまい、内部ストレージのパスであるstorage/emulated/0を読み込まなくなるので避けた方が無難です。Android5.0~7.0までは一番上のパスを呼んでくれるのですが、Android8.0は賢くないのか下から順番に探してくるみたいです。なのでAndroid8.0からの新しめのアプリを作る若しくはAndroid8.0向けにアップデートを考えているエンジニアさんは気をつけてくださいね。

これが正しい例↓

<pre><?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="storage/emulated/0" path="."/>
</paths>

これが避けた方が良い例↓

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="storage/emulated/0" path="."/>
<external-path name="storage/sd" path="."/>
</paths>

真っ当にリファレンスを読んでいればこんなことには遭遇しないと考えているので、今回は完全に自分向けの話題になってしまいました。まだストレージに関する全ての流れを把握した訳ではないので、しばらくはディレクトリ関係の話題が続きそうです・・・!

  • この記事いいね! (0)