Android14の「写真と動画を選択」

Android14で端末中への画像アクセスが「OS側でユーザに画像を選ばせてアプリはその範囲しかアクセスできない」件、
他アプリはどうなのだろうと思って調べてみたらTwitter(X)はまだtargetSdkVersion33で未対応だった。

ThreadsはtargetSdkVersion34で一応対応してるが、古い作りの「アプリ内でギャラリーを表示する」から脱却していなかった。よって権限ダイアログで「写真と動画を選択」を選んだ場合(選択肢のトップなので、多くのユーザがこれを選んでしまうだろう)、その後にOSが提供するダイアログで「アプリがどの画像にアクセスできるか」を選び、さらにアプリ内ギャラリーでもう一度画像を選択する形になる。2回選択するというのが非常にわかりにくい。

その後画像をさらに追加したい場合どうするかというと、投稿作成画面のサムネイルをタップすると再度アプリ内ギャラリーが開くが、この時点ではOSから許可されていないので追加の画像はギャラリーには存在しない。アプリ内ギャラリーに「一部の写真と動画に対して、Threadsによるアクセスを許可しました。」という注意書きがうっすら見えて、その右の管理するボタンを押すと「さらに写真を選択」「設定を変更」の選択肢がある。
「さらに写真を選択」はOSによる画像選択画面からやり直してOSがアプリにアクセス許可する画像を増やして、その後にアプリ内ギャラリーに候補が追加されて、ユーザは再度画像を選ぶ。2回選択するというのが非常にわかりにくい。

「設定を変更」はアプリの権限設定への導線で、「写真と動画へのアクセス」を「常に全て許可」にさせたいのだろう。これを行うとアプリ内ギャラリーには端末中の画像が全て表示され、Android 13までと同様の操作感になる。

権限を一度取得したらアプリから端末上の画像を全部読める、という時代は終わるのだと思う。それはそうだ、公開したい写真を選ぶためだけに、公開したくない写真にまでアプリがアクセスできるのは危険だろう。悪意のあるアプリがウラでどこかにアップロードしていてもユーザは気が付かない。

過去のアプリのUXは、端末上の全てにアクセスできる前提で、端末上の画像を選ぶ画面をアプリ側で作り込んでいた。その画面に、投稿中の画像の順序を変更する機能も持たせていた。

おそらく今後は端末上の画像を選ぶ画面はセキュリティのためにOSに任せるべきで、投稿中の画像の順序を変更する機能は別の場所に設ける必要がある。

あと、OSで選択した画像のUriは権限の種別によりpickなんとかという内容になってしまい、過去のMediaStoreのUriとは異なる。過去のMediaStoreのUriでクエリしても空カーソルが返る。例えば過去のアプリではSAFのDocument Uri をMediaStoreのUriに変換したりしていたが、そういう芸当はもう出来なくなる。