android Flutter“清单中缺少蓝牙权限”

tquggr8v  于 2023-04-04  发布在  Android
关注(0)|答案(2)|浏览(407)

我正在尝试将蓝牙添加到我的应用程序以打印凭证
我使用的是permission_handler: ^10.2.0
android manifest:

<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

它说,蓝牙许可是失踪的manifast,但它是补充说,我做了Flutter清洁,Flutter酒吧升级,似乎没有什么工作
谁能帮帮我

l7wslrjt

l7wslrjt1#

在第一种情况下,蓝牙权限似乎被拒绝,因此请尝试在Android Manifest中更新此权限

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="io.github.edufolly.flutterbluetoothserial">
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
</manifest>

并将SDK版本更改为29或更高
在flutter蓝牙串行这个错误经常发生,所以你可以按照https://pub.dev/packages/flutter_bluetooth_serial或官方的GitHub,他们建议,因为在一开始我也得到了这样的问题,但后来得到了清除.

xwbd5t1u

xwbd5t1u2#

此问题发生在android 12之后。版本0.4.0仅支持android 12以下。
我在Android 10上测试了这个包,它工作得很好,但对于Android 12,我遇到了这个问题。
维护flutter_bluetooth_serial软件包的开发人员长时间没有更新软件包。一些问题在仓库中提出。一些开发人员也提出了解决方案的PR。
你可以在github repo. 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

相关问题