我正在尝试将蓝牙添加到我的应用程序中以打印凭证
我使用permission_handler: ^10.2.0
android清单:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<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" />
<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" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
我已经尝试了多个权限,并多次添加和删除它们
请求许可
Map<Permission, PermissionStatus> status = await [
Permission.bluetoothConnect,
Permission.bluetoothAdvertise,
Permission.bluetooth,
Permission.bluetoothScan,
].request();
print(status);
我在输出中得到这个
Bluetooth permission missing in manifest
I/flutter (13811): {Permission.bluetooth: PermissionStatus.denied, Permission.bluetoothScan: PermissionStatus.granted, Permission.bluetoothAdvertise: PermissionStatus.granted, Permission.bluetoothConnect: PermissionStatus.granted}
D/FlutterBluePlugin(13811): Connecting to 00:1B:35:11:2B:BA (id: 6)
I/flutter (13811): PlatformException(connect_error, UID 10339 / PID 13811 lacks permission android.permission.BLUETOOTH, java.lang.SecurityException: UID 10339 / PID 13811 lacks permission android.permission.BLUETOOTH
它说蓝牙权限在manifest中缺失,但它被添加了,我做了Flutter清洁,Flutter酒吧升级,似乎没有工作
有人能帮我吗?
2023年5月更新
对部分3.0.1
和颤振3.10.0
的试验
以前我使用的PR来自Calm。它工作得很好。但不知怎么的,它给了我一个错误。
然后我决定改变回购。我认为他们使用了不同的方法。现在我使用from @bswhite1
flutter_bluetooth_serial:
git:
url: https://github.com/bswhite1/flutter_bluetooth_serial.git
ref: android_12_updates
更改依赖项后不要忘记
flutter clean
PR有3个选项:https://github.com/edufolly/flutter_bluetooth_serial/pulls?q=android + 12 +
你可以试试哪一个适合你的项目。
老回答此问题发生在android 12之后。0.4.0
版本只支持android 12以下版本。
维护我在android 10上测试了这个包,它的工作很好,但是forAndroid 12我也有同样的问题
flutter_bluetooth_serial
包的开发人员长期不更新包。在存储库上提出了一些问题。有些开发者还会为解决方案提高PR。
你可以在github上找到一些建议。https://github.com/edufolly/flutter_bluetooth_serial/issues/161
这里我用的是
改变你的pubspec.yaml
dependencies:
flutter_bluetooth_serial: ^0.4.0
- :
flutter_bluetooth_serial:
git:
url: https://github.com/calmh/flutter_bluetooth_serial.git
ref: android12