HarmonyOS 鸿蒙Next从API-10开始引入的UsbDdK接口规划
HarmonyOS 鸿蒙Next从API-10开始引入的UsbDdK接口规划
众所周知在4.0版本鸿蒙以前,C++层使用NAPI-CAPI实现USB通讯,是需要系统(依赖)订制能力的,
- 要不搞系统服务;
- 要不关掉SECLinux直接怼libusb;
鸿蒙4.0的API-10新引入了UsbDdk,通过UsbDdk申请 ohos.permission.ACCESS_DDK_USB 权限,貌似可以在不依赖订制系统的情况下C++实现USB通讯。然而实测效果是:
- 在鸿蒙4.0下,Hap可以申请到 ohos.permission.ACCESS_DDK_USB 权限,正常安装,并且正常通讯;
- 在鸿蒙4.1下,Hap申请 ohos.permission.ACCESS_DDK_USB 权限会失败,去掉权限申请,倒是可安装正常,并且正常通讯;
鸿蒙4.1下Hap安装失败:
看起来是4.0–>4.1 对USB设备的使用更加开放(权限申请都不需要了),权限管控放松,然而文档却是将ACCESS_DDK_USB提升到system_basic层。
这个 UsbDdK 既然是API10才新入引的,应该不至于废弃,我们也很想用上去,但这个接口的使用权限发展方向是放开还收紧呢?
无解,必须要用usb ddk 才可以,不然别想了
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
find_usbfs_path 就不行了。
3.2、4.0 就需要关掉SECLinux 当Linux用才可以用libusb,所以说需要有系统订制能力。
如果系统是第三方提供的,哪些小舅子的公司也只是买买买的,咱能给个安装包项目就成,不能给就算球。C++实现的话就希望API-10的UsbDdk接口能用上,但如果华为真如4.1文档中看到的哪样,将这个UsbDdk权限弄到syetem_basic级,哪还是不要在UsbDddk上浪费时间为妙,要不系统订制,要不直接TS层实现。
看着他们 三方库里面有libusb以为能用,结果调整半天代码调整完才发现不支持,伤脑筋,如果要改成USBDDK又得忙活半天。
修改UnsgnedReleasedProfileTemplate.json文件,改变应用的权限等级也不行吗
HarmonyOS 鸿蒙Next从API-10开始引入的UsbDdK(USB Driver Develop Kit)接口,为开发者提供了在应用层开发USB设备驱动的能力。UsbDdK支持用户态的USB设备数据读写、控制传输、中断传输等多种通信方式,旨在简化USB设备驱动的开发过程。
UsbDdK接口的规划体现了鸿蒙系统对USB设备管理的进一步开放和优化。通过提供丰富的API接口,开发者可以更加灵活和高效地实现USB设备的接入与通信。这些接口包括DDK初始化、interface对象操作、request对象操作等多个类别,覆盖了USB设备驱动开发的各个方面。
然而,随着鸿蒙系统版本的更新,UsbDdK接口的具体实现和使用方式可能会有所变化。因此,建议开发者在开发过程中密切关注鸿蒙系统的更新日志和官方文档,以确保所开发的USB设备驱动能够兼容最新的鸿蒙系统版本。
如果在使用UsbDdK接口过程中遇到问题,建议首先参考官方文档和社区资源,尝试自行解决。如果问题依旧无法解决,可以联系鸿蒙官网客服进行咨询,官网地址是:https://www.itying.com/category-93-b0.html。客服将提供专业的技术支持和解决方案。