when I running the my project showing this error
`D/BluetoothAdapter(25841): isLeEnabled(): ON
I/flutter (25841): Error starting scan.
E/flutter (25841): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: PlatformException(startScan, Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@bb6a5b7c: GattService registerScanner, null, null)
E/flutter (25841): #0 BluetoothManager.scan (package:flutter_bluetooth_basic/src/bluetooth_manager.dart:85:7)
E/flutter (25841): <asynchronous suspension>
E/flutter (25841):
`
I added `
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30"
tools:targetApi="donut" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30"
tools:targetApi="donut" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
android:maxSdkVersion="30"
tools:targetApi="31" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
` this permissions in androidmanifest but still the same error is showing and not taking any blue tooth devices.
Remove
the android:maxSdkVersion="30"
from your permission requests.
Using it like this limits the permission request to SDK version 30 and older
.
Also, you only need BLUETOOTH_SCAN
and BLUETOOTH_CONNECT
for SDK >30
. Check the documentation for more information.
Change your code to the following and it should work:
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="31" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
android:maxSdkVersion="30"/>