Huawei端末の「デフォルトの保存場所」と externalCacheDir と FileProvider.parsePathStrategy
Huawei端末はデフォルトの保存先をSDカードにすることができる。
私の手元では以下の2機種にその設定があった。
その設定により、context.externalCacheDir は SDカードのパスを返す。
しかし ContextCompat.getExternalCacheDirs(context)[0] はプライマリストレージのパスを返す。
FileProvider#parsePathStrategy が参照するのは後者であり、よってFileProvider経由で外部アプリに公開したいならアプリでも ContextCompat.getExternalCacheDirs(context)[0] を使ってファイル保存を行うべきだ。
結果としてキャッシュデータはプライマリストレージに保存されてユーザの意向は反映されなくなるが、動作しないよりはマシ。