Bluetooth接続するAndroidアプリを開発しています。

実機で開発アプリをデバッグしながら動かしていたのですが、接続しようとすると以下 SecurityExceptionが発生しました。

エラーメッセージ 見出しへのリンク

W/Binder: Caught a RuntimeException from the binder stub implementation.
java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
at android.os.Parcel.readException(Parcel.java:1959)
at android.os.Parcel.readException(Parcel.java:1898)
at android.bluetooth.IBluetoothGatt$Stub$Proxy.startScan(IBluetoothGatt.java:918)
at android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper.onScannerRegistered(BluetoothLeScanner.java:431)
at android.bluetooth.le.IScannerCallback$Stub.onTransact(IScannerCallback.java:56)
at android.os.Binder.execTransact(Binder.java:674)

解決法 見出しへのリンク

他サイト見てみると位置情報パーミションを許可し、端末の位置情報モードをONにする必要ありとのこと。
ただ端末の位置情報モードをONにしても同じエラーが発生する。

理由は簡単でした。

端末の位置情報モードはONにしていましたが、アプリレベルの権限がOFFのままでした。
設定を変更したらエラーが発生しなくなりました。

以上