通用串行总线-usb
描述
通用串行总线USB,USB接口支持U盘、鼠标、键盘、USB触摸屏、WiFi/4G模块。建议U盘的分区格式为FAT32,最大支持32GB容量。父对象为device.io,无子对象。
事件
event:USB事件发生时触发,事件函数定义:onEvent(classname, event, payload),其中classname为USB类名称, event为事件类型,payload为载荷,不同类型的class有不同的定义,见下表:
事件描述 |
classname |
event |
payload |
|---|---|---|---|
U盘插入 |
mass_storage |
mount:ok (U盘挂载成功) mount:fail(U盘挂载失败) |
U盘的路径,如/storage/d0 |
U盘拔出 |
mass_storage |
umount:ok (U盘卸载成功) umount:fail(U盘卸载失败) |
U盘的路径,如/storage/d0 |
鼠标插入 |
hid |
add |
mouse |
鼠标拔出 |
hid |
remove |
mouse |
键盘插入 |
hid |
add |
keyboard |
键盘拔出 |
hid |
remove |
keyboard |
触摸屏插入 |
hid |
add |
touch |
触摸屏拔出 |
hid |
remove |
touch |
属性
无
方法
名称 |
功能说明 |
脚本例子 |
|---|---|---|
getStorageCount() |
获取当前已经挂载的U盘数量 |
var udriveCount=device.io.usb.getStorageCount() |
getStoragePath(index) |
获取索引号为index的U盘的挂载路径,如果U盘没有挂载,返回invalid,路径名一般为/storage/dX,其中X为索引号。如同时插入两个U盘,分别挂载在/storage/d0, /storage/d1。 |
var path=device.io.usb.getStoragePath(0) 获取索引号为0的U盘的挂载路径 |
使用说明
如何防止U盘拔出时数据丢失
操作系统默认不会立即把数据写入U盘,而是先写入缓存中,只有执行umount或者sync时才会把缓存里的数据真正写入U盘。所以我们从下面的两种方式中选择一种即可。
方式1: 在拔出U盘前,使用 service.data.storage.umount(path) 卸载U盘。
方式2: 在文件写操作后或者文件拷贝后,立即调用文件对象的同步方法 ui.form-name.file-name.sync() 或者调用通用方法 service.data.storage.sync(path) 来同步文件。