HarmonyOS 鸿蒙Next中.NET MAUI应用在MatePad Pro上申请USB权限,系统弹窗未显示

HarmonyOS 鸿蒙Next中.NET MAUI应用在MatePad Pro上申请USB权限,系统弹窗未显示 我开发了一个.NET MAUI项目,希望此应用可以在MatePad Pro运行并能和另外一个设备(CP210x)进行USB通信。

目前现象

  1. 应用可以在MatePad Pro运行。
  2. 当USB设备插入后,接收器能触发。
  3. 请求USB权限时,系统弹窗未显示。 – 希望解决的问题。

程序:

  1. 配置文件已设置, USB权限,host功能(不考虑设备筛选)。
  2. 接收器已注册
string action = $"com.bth.mauiapp1.USB_PERMISSION";

var filter = new IntentFilter(action);
filter.AddAction(UsbManager.ActionUsbDeviceAttached);
filter.AddAction(UsbManager.ActionUsbDeviceDetached);

RegisterReceiver(_usbReceiver, filter);
  1. 申请USB权限,执行不报错 usbManager.RequestPermission(device, permissionIntent);
var permissionIntent = PendingIntent.GetBroadcast(
        _context,
        0,
       new Intent($"com.bth.mauiapp1.USB_PERMISSION"),
       PendingIntentFlags.UpdateCurrent | PendingIntentFlags.Mutable | PendingIntentFlags.OneShot);

硬件连接: USB设备(RS232转USB串口),USB插入到扩展坞(支持OTG),扩展坞连接MatePad Pro。

USB设备详细 设备:/dev/bus/usb/002/003 厂商ID: 0x10C4; 产品ID: 0xEA60 设备类:PerInterface 设备子类:PerInterface 接口数量:1

MatePad Pro 软件版本:Harmony OS 5.10;
USB调试:已开启。 Host: 支持 Android 版本:12 API级别:31


更多关于HarmonyOS 鸿蒙Next中.NET MAUI应用在MatePad Pro上申请USB权限,系统弹窗未显示的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS Next中,.NET MAUI应用需在module.json5配置文件中声明ohos.permission.USB_PERMISSION权限。检查配置是否包含USB设备过滤信息,如vendorId和productId。若配置正确但弹窗未触发,可能是系统权限服务未正确识别请求。验证设备USB主机模式是否启用,并确认应用包名与配置匹配。排查USB设备状态与系统日志中的权限请求记录。

更多关于HarmonyOS 鸿蒙Next中.NET MAUI应用在MatePad Pro上申请USB权限,系统弹窗未显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,USB权限弹窗未显示可能由几个原因导致。首先,检查配置文件中的USB权限声明是否正确,确保已包含必要的<uses-feature><uses-permission>标签,特别是android.hardware.usb.host和权限android.permission.USB_PERMISSION。其次,验证设备过滤条件是否匹配您的CP210x设备(厂商ID 0x10C4,产品ID 0xEA60),如果配置文件未正确定义设备,系统可能不会触发弹窗。

在代码层面,确保permissionIntent的创建使用了正确的PendingIntent标志,如PendingIntentFlags.Mutable,这在HarmonyOS Next中可能更严格。另外,检查USB设备是否通过扩展坞正确连接,并确认扩展坞支持OTG功能,因为不兼容的硬件可能导致系统无法识别设备。

最后,测试在USB设备插入时,系统日志是否有相关错误输出,这有助于诊断权限请求失败的具体原因。如果问题持续,尝试在真机上使用adb命令检查USB设备列表,确认设备被系统检测到。

回到顶部