結論
BLUETOOTH_SCANのパーミッションを要求する
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.hogehoge.androidbeaconapp">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <-追加
<application
android:allowBackup="true"
必要であればrequestPermissions
にも追加
詳細
iBeaconを購入したので試しにログを出力するためにサンプルアプリを作成。パーミッション周りはaltbeaconの公式サイトのこちらを参考に設定してみたがなぜか動かない。
ログを漁ってみたところ以下のようなメッセージが表示された。
E/ScanHelper: SecurityException stopping Android O background scanner
E/CycledLeScannerForLollipop: Cannot start scan. Security Exception: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@802cd449: GattService registerScanner
Android公式サイトを参照するとAPIレベル31から新しいBluetooth権限が追加されていることがわかりますね。
https://developer.android.com/about/versions/12/features/bluetooth-permissions?hl=ja