You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter蓝牙权限缺失报错求助(已配置Manifest仍无效)

解决蓝牙权限缺失问题

1. 修复Android Manifest语法错误

你的Manifest代码中存在一个多余的>符号,这会导致Manifest解析异常,权限无法正确生效。找到以下代码段:

<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_ADMIN"
        android:maxSdkVersion="30" />

    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />

2. 调整权限请求逻辑

在Android 12(API 31)及以上版本,旧的BLUETOOTH权限已被废弃,无需请求。修改权限请求代码,移除Permission.bluetooth:

Map<Permission, PermissionStatus> status = await [
  Permission.bluetoothConnect,
  Permission.bluetoothScan,
  // 若无需蓝牙广播功能,可移除bluetoothAdvertise
  // Permission.bluetoothAdvertise,
].request();
print(status);

3. 验证蓝牙插件兼容性

日志中出现FlutterBluePlugin,说明你使用了flutter_blue插件。确保该插件已更新到支持Android 12+的最新稳定版,旧版本插件可能仍在调用依赖旧BLUETOOTH权限的API,触发权限报错。

4. 重新构建项目

执行以下命令彻底清理并重新构建,确保Manifest修改生效:

flutter clean
flutter pub get
flutter run  # 或构建APK

额外说明

  • 你已为旧版蓝牙权限(BLUETOOTH、BLUETOOTH_ADMIN)配置android:maxSdkVersion="30",这部分设置正确,仅会在Android 11及以下版本生效。
  • 若需扫描未配对设备,需确保位置权限的请求和配置;但打印凭证通常连接已配对设备,可根据实际场景调整位置权限。

内容的提问来源于stack exchange,提问作者Morheb Bek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:43:30