Android 12 から追加されたカメラとマイクへのアクセスの変更点について解説します。
ごきげんよう! タクシーアプリ GO の Android 版を開発をしている @sobachanko です。
Android 12 がリリースされ、既にお使いの端末をアップデートされた方も多いのではないでしょうか。
Android 12 ではユーザーのセキュリティとプライバシーを保護するための新たな機能がいくつか含まれており、今回はその中からカメラとマイクについて解説します。
GO では以下のようなシーンでカメラとマイクを利用しています。
アプリがカメラとマイクを利用している際に、以下のそれぞれのスクリーンショットのように、右上にインジケータが表示されるようになりました。
iOS では 14 から追加されている機能と同等のものなので、iOS に慣れ親しんだ方であればイメージしやすいと思います。
左がカメラインジケータ表示時、右がマイクインジケータ表示時
Android 12 からはカメラとマイクはアプリ毎に許可/拒否を設定する権限とは別に、OS 全体でアクセスの ON/OFF を切り替える機能が追加されました。
設定はステータスバーから引き出すクイックアクセスの他、「設定 → プライバシー」からでも変更が可能です。
左 2 枚がクイックアクセスでの ON/OFF、右が設定アプリ内
権限が未許可の場合とは違い、OFF に設定している状態でカメラとマイクへのアクセスが発生しても例外を吐くことはなく、OS が以下のようなふるまいをします。
この設定の状態をアプリから取得することはできませんが、OFF の状態でカメラとマイクへのアクセスが発生した際には OS がダイアログを表示してくれるため、アプリ開発者はコードを修正する必要はありません。
左がカメラアクセス時、右がマイクアクセス時
上記のスクリーンショットの場合、「ブロックを解除」を選択するとアクセスが ON に切り替わり、「キャンセル」を選択した場合は設定が変更されることなくただダイアログが閉じるだけです。
権限が付与されていない場合にはカメラとマイクにアクセスしないよう、適切な権限管理を行っているアプリであれば Android 12 向けに新たな対応は不要です。
Android 6 で Runtime Permission が導入された時のように対応に追われることのないアップデートではありましたが、ユーザーが安心して Android を利用できる素敵なアップデートだと思います。
※1 QRコードは(株)デンソーウェーブの登録商標です
※2 音声トリガーの読み取りには YAMAHA の SoundUD を利用しております
興味のある方は 採用ページ も見ていただけると嬉しいです。
Twitter @mot_techtalk のフォローもよろしくお願いします!