はじめに
最近Bluetooth関連の機能を実装しているプロジェクトを触ったのですが、Bluetoothに関するパーミッションってたくさんありますよね。
上記に関するパーミッションがそれぞれどういう役割を担っているのか備忘録的に残しておこうと思います。
BLUETOOTH
Android12以下の端末でBluetooth機能を使用する場合はまずこのパーミッションを追加する必要があります。
このパーミッションは、接続のリクエスト、接続の受け入れ、データの転送など、Bluetooth通信を実行するために必要です。
BLUETOOTH_ADMIN
Android12以下の端末で機器の検出を開始したり Bluetooth設定を操作したりする場合はBLUETOOTHパーミッションと合わせて追加する必要があります。
BLUETOOTH_PRIVILEGED
アプリがユーザーの承諾なしにBluetoothデバイスをペアリングしたり、電話帳へのアクセスやメッセージへのアクセスを許可または禁止したりできるようにするパーミッションです。
※サードパーティ製のアプリケーションでは使用できないようです。
BLUETOOTH_SCAN
Android12から追加されたパーミッションで、アプリからBlootooth機器を探す場合はこのパーミッションを追加します。
BLUETOOTH_ADVERTISE
Android12から追加されたパーミッションで、他のデバイスから現在のデバイスを検索できるようにする場合はこのパーミッションを追加します。
BLUETOOTH_CONNECT
Android12から追加されたパーミッションで、すでにペアリングされている機器と通信を行う場合はこのパーミッションを追加します。
さいごに
Android12からかなり実装が変わっていますね。
12以前はBluetoothの許可をもらうために位置情報取得の許可も必要だったりと実装に手間がかかる印象でしたが、12以降はシンプルに実現が可能になっています。
パーミッション事情もだいぶ変わってきているので、またタイミングみて纏めて置こうと思います。