MoTLab -GO Inc. Engineering Blog-MoTLab -GO Inc. Engineering Blog-

Android12 の Security And Privacy 対策におけるマイクとカメラを扱う際の変更点

Android
October 25, 2021

Android 12 から追加されたカメラとマイクへのアクセスの変更点について解説します。


ごきげんよう! タクシーアプリ GO の Android 版を開発をしている @sobachanko です。

Android 12 がリリースされ、既にお使いの端末をアップデートされた方も多いのではないでしょうか。

Android 12 ではユーザーのセキュリティとプライバシーを保護するための新たな機能がいくつか含まれており、今回はその中からカメラとマイクについて解説します。

はじめに

GO では以下のようなシーンでカメラとマイクを利用しています。

  • カメラ
    • 流しや駅待ちのタクシーに乗車した際の支払いを GO で実施するために、タクシーの後部座席に設置されたタブレットに表示された QR コードを読み取るため。 ※1
    • クレジットカードを登録する際に、入力補助機能としてクレジットカードを読み取るため。
  • マイク
    • 流しや駅待ちのタクシーに乗車した際の支払いを GO で実施するために、一部のタクシーの後部座席に設置されたタブレットが発する音声トリガーを読み取るため。 ※2
    • タクシー乗務員との通話のため。

本題

主な変更点

  • アプリがカメラ/マイクへアクセスしている際にステータスバーにインジケータが表示される
  • ユーザーが明示的にカメラ/マイクへのアクセスを ON/OFF できる

ステータスバーのインジケータ

アプリがカメラとマイクを利用している際に、以下のそれぞれのスクリーンショットのように、右上にインジケータが表示されるようになりました。

iOS では 14 から追加されている機能と同等のものなので、iOS に慣れ親しんだ方であればイメージしやすいと思います。

An image from Notion

カメラとマイクへのアクセスの ON/OFF

Android 12 からはカメラとマイクはアプリ毎に許可/拒否を設定する権限とは別に、OS 全体でアクセスの ON/OFF を切り替える機能が追加されました。

設定はステータスバーから引き出すクイックアクセスの他、「設定 → プライバシー」からでも変更が可能です。

An image from Notion

2 ON/OFF

権限が未許可の場合とは違い、OFF に設定している状態でカメラとマイクへのアクセスが発生しても例外を吐くことはなく、OS が以下のようなふるまいをします。

  • カメラの場合
    • 何も写っていないようにふるまう
  • マイクの場合
    • 無音であるようにふるまう

この設定の状態をアプリから取得することはできませんが、OFF の状態でカメラとマイクへのアクセスが発生した際には OS がダイアログを表示してくれるため、アプリ開発者はコードを修正する必要はありません。

An image from Notion

上記のスクリーンショットの場合、「ブロックを解除」を選択するとアクセスが ON に切り替わり、「キャンセル」を選択した場合は設定が変更されることなくただダイアログが閉じるだけです。

おわりに

権限が付与されていない場合にはカメラとマイクにアクセスしないよう、適切な権限管理を行っているアプリであれば Android 12 向けに新たな対応は不要です。

Android 6 で Runtime Permission が導入された時のように対応に追われることのないアップデートではありましたが、ユーザーが安心して Android を利用できる素敵なアップデートだと思います。

リンク集

注釈

※1 QRコードは(株)デンソーウェーブの登録商標です

※2 音声トリガーの読み取りには YAMAHA の SoundUD を利用しております


We're Hiring!

📢
Mobility Technologies ではともに働くエンジニアを募集しています。

興味のある方は 採用ページ も見ていただけると嬉しいです。

Twitter @mot_techtalk のフォローもよろしくお願いします!