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

Flutter USB设备访问权限被拒(errno=13)问题求助

解决Flutter USB设备访问权限被拒(errno=13)的问题

1. 修正AndroidManifest.xml权限配置

你当前的权限配置存在错误,android.permission.USB_PERMISSION不属于<uses-permission>声明项,而是需要通过代码动态请求的特殊权限;另外如果你的应用是作为主机连接普通USB设备,应该用android.hardware.usb.host而非accessory。正确配置如下:

<!-- 声明USB主机特性,非强制要求可设为false -->
<uses-feature android:name="android.hardware.usb.host" android:required="false" />
<!-- 仅当需要读写外部存储时保留,与USB访问无直接关联 -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

2. 确保device_filter.xml配置准确

在res/xml/device_filter.xml中必须精准匹配目标USB设备的VID和PID,示例:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 替换为你的设备实际VID和PID -->
    <usb-device vendor-id="1234" product-id="5678" />
</resources>

3. 代码中主动触发USB权限请求

仅靠Manifest配置无法弹出权限窗口,必须通过usb_serial包主动请求,示例代码:

import 'package:usb_serial/usb_serial.dart';

Future<void> requestUsbPermission() async {
  List<UsbDevice> devices = await UsbSerial.listDevices();
  if (devices.isNotEmpty) {
    UsbDevice targetDevice = devices.first;
    // 发起权限请求
    bool isGranted = await UsbSerial.requestPermission(targetDevice);
    if (isGranted) {
      // 权限通过后打开设备
      UsbPort? port = await targetDevice.create();
      await port?.open();
      // 根据设备需求设置串口参数
      await port?.setParameters(9600, 8, 1, 0);
    } else {
      print("USB权限被拒绝");
    }
  }
}

4. Android版本适配处理

  • 针对Android 10+,若确实需要外部存储权限,需引导用户手动开启(该权限无法通过弹窗直接授权):
import 'package:permission_handler/permission_handler.dart';

Future<void> checkStoragePermission() async {
  if (await Permission.manageExternalStorage.isDenied) {
    await Permission.manageExternalStorage.request();
    if (await Permission.manageExternalStorage.isDenied) {
      // 跳转到应用设置页让用户手动开启
      await openAppSettings();
    }
  }
}

5. 设备连接模式排查

确保USB设备连接时处于主机模式,部分设备需在开发者选项中将USB连接模式调整为“仅充电”或“USB主机”,避免MTP等文件传输模式干扰权限请求。

6. 测试注意事项

  • 不要在应用启动时直接请求权限,建议通过按钮点击触发,避免系统拦截权限弹窗;
  • 修改配置后重启应用和设备,确保配置生效。

内容的提问来源于stack exchange,提问作者Muaz ALBAGHDADI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:52:25