HarmonyOS 鸿蒙Next usbManager.openAccessory打开后 closeAccessory没有被关闭下次无法正常打开配件
HarmonyOS 鸿蒙Next usbManager.openAccessory打开后 closeAccessory没有被关闭下次无法正常打开配件
usbManager.openAccessory打开设备后,没有调用closeAccessory关闭,手机端会一直残留没有正确关闭的Accessory。
@Concurrent
export async function AoaTask2() {
let handle: usbManager.USBAccessoryHandle | null = null;
let aoaDevice: usbManager.USBAccessory | null = null;
if (!config.isPlugin) {
config.isPlugin = true;
while (config.isPlugin) { // usb设备已连接
try {
let accList: usbManager.USBAccessory[] = usbManager.getAccessoryList()
if (accList.length == 0) {
continue;
}
aoaDevice = accList[0];
let flag = await usbManager.requestAccessoryRight(aoaDevice)
handle = usbManager.openAccessory(aoaDevice)
while (config.isPlugin) {
MyLog("读取文件中")
}
usbManager.closeAccessory(handle)
MyLog(`closeAccessory success`);
} catch (error) {
MyLog(`openAccessory error ${error.code}, message is ${error.message}`)
if (handle != null) {
usbManager.closeAccessory(handle);
}
}
}
MyLog(`finish success`);
}
}
使用上述代码在usbManager.openAccessory打开后,通过循环读取设备的内容过程中,应用通过任务面板一键杀死后,usbManager.closeAccessory没有被正确的关闭,再次进入应用报错,BusinessError 14401003:Cannot reopen the accessory.Cannot reopen accessory,无法重新打开配件。通过关闭usb设备(拔出usb设备),调用usbManager.getAccessoryList()方法后,还是能够显示上一个连接的设备,但此时设备已经拔出,手机端会一直保留上次没有正确关闭的Accessory,导致重新连上usb设备也继续报Cannot reopen accessory,只能重启手机才能让手机不保留上次没有正确关闭的Accessory,请问该如何解决closeAccessory没被调用,Accessory无法正常释放问题?
更多关于HarmonyOS 鸿蒙Next usbManager.openAccessory打开后 closeAccessory没有被关闭下次无法正常打开配件的实战教程也可以访问 https://www.itying.com/category-93-b0.html
再打开前先检测一下是不是已经打开了,已经打开的话先关闭一下是否可解决问题,先执行下如下代码
let accList: usbManager.USBAccessory[] = usbManager.getAccessoryList()
if (accList.length != 0) {
aoaDevice = accList[0];
let flag = await usbManager.requestAccessoryRight(aoaDevice)
handle = usbManager.openAccessory(aoaDevice)
usbManager.closeAccessory(handle)
}
更多关于HarmonyOS 鸿蒙Next usbManager.openAccessory打开后 closeAccessory没有被关闭下次无法正常打开配件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html