智能客服
你问我答,随时在线为你解决问题
该模块提供扫描框架的 JS API,支持扫描仪的发现与管理、扫描执行、设备事件监听等能力,适用于应用需要集成扫描仪进行文档数字化采集与设备管理的场景。
本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
当前界面仅包含本模块的公开接口。
import { scan } from '@kit.BasicServicesKit'; 定义扫描错误码的枚举。
系统能力: SystemCapability.Print.PrintFramework
| 名称 | 值 | 说明 |
|---|---|---|
| SCAN_ERROR_NO_PERMISSION | 201 | 无权限,请根据对应接口的权限要求申请所需权限,并在配置文件中声明。 |
| SCAN_ERROR_NOT_SYSTEM_APPLICATION | 202 | 非系统应用,请检查应用类型是否为系统应用。 |
| SCAN_ERROR_INVALID_PARAMETER | 401 | 无效参数,请检查参数类型和取值范围。 |
| SCAN_ERROR_GENERIC_FAILURE | 13100001 | 通用失败,请检查扫描服务运行状态并重试。 |
| SCAN_ERROR_RPC_FAILURE | 13100002 | RPC失败,请检查RPC通信状态并重试。 |
| SCAN_ERROR_SERVER_FAILURE | 13100003 | 服务失败,请检查扫描服务是否正常运行并重试。 |
| SCAN_ERROR_UNSUPPORTED | 13100004 | 不支持的操作,请检查当前操作是否被扫描仪支持。 |
| SCAN_ERROR_CANCELED | 13100005 | 操作取消,请检查是否调用了cancelScan或操作被系统中断。 |
| SCAN_ERROR_DEVICE_BUSY | 13100006 | 设备忙,请等待设备空闲后重试。 |
| SCAN_ERROR_INVALID | 13100007 | 无效操作,请检查当前操作在扫描仪状态下是否有效。 |
| SCAN_ERROR_JAMMED | 13100008 | 卡纸,请清除扫描仪中的卡纸后重试。 |
| SCAN_ERROR_NO_DOCS | 13100009 | 缺纸,请在扫描仪中放入文档后重试。 |
| SCAN_ERROR_COVER_OPEN | 13100010 | 盖子打开,请关闭扫描仪盖子后重试。 |
| SCAN_ERROR_IO_ERROR | 13100011 | I/O错误,请检查设备I/O连接状态并重试。 |
| SCAN_ERROR_NO_MEMORY | 13100012 | 内存不足,请释放系统内存后重试。 |
定义参数约束类型的枚举。
系统能力: SystemCapability.Print.PrintFramework
| 名称 | 值 | 说明 |
|---|---|---|
| SCAN_CONSTRAINT_NONE | 0 | 无限制。 |
| SCAN_CONSTRAINT_RANGE | 1 | 范围限制。 |
| SCAN_CONSTRAINT_WORD_LIST | 2 | 数字列表。 |
| SCAN_CONSTRAINT_STRING_LIST | 3 | 字符串列表。 |
定义物理单位的枚举。
系统能力: SystemCapability.Print.PrintFramework
| 名称 | 值 | 说明 |
|---|---|---|
| SCAN_UNIT_NONE | 0 | 无单位。 |
| SCAN_UNIT_PIXEL | 1 | 像素单位。 |
| SCAN_UNIT_BIT | 2 | 位单位。 |
| SCAN_UNIT_MM | 3 | 毫米单位。 |
| SCAN_UNIT_DPI | 4 | DPI单位。 |
| SCAN_UNIT_PERCENT | 5 | 百分比单位。 |
| SCAN_UNIT_MICROSECOND | 6 | 微秒单位。 |
定义选项值类型的枚举。
系统能力: SystemCapability.Print.PrintFramework
| 名称 | 值 | 说明 |
|---|---|---|
| SCAN_TYPE_BOOL | 0 | 布尔类型。 |
| SCAN_TYPE_INT | 1 | 整数类型。 |
| SCAN_TYPE_FIXED | 2 | 定点数类型。 |
| SCAN_TYPE_STRING | 3 | 字符串类型。 |
定义扫描仪同步模式的枚举。
系统能力: SystemCapability.Print.PrintFramework
| 名称 | 值 | 说明 |
|---|---|---|
| UPDATE_STR | 'update' | 更新模式,表示扫描仪ID的变化。 |
| DELETE_STR | 'delete' | 删除模式,表示扫描仪掉线。 |
定义扫描仪发现模式的枚举。
系统能力: SystemCapability.Print.PrintFramework
| 名称 | 值 | 说明 |
|---|---|---|
| TCP_STR | 'TCP' | 网络扫描仪的发现模式。 |
| USB_STR | 'USB' | USB扫描仪的发现模式。 |
定义范围的接口。
系统能力: SystemCapability.Print.PrintFramework
属性:
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| minValue | number | 否 | 否 | 范围的最小值。 |
| maxValue | number | 否 | 否 | 范围的最大值。 |
| quantValue | number | 否 | 否 | 范围的量化值,表示范围内有效值之间的步长。 |
定义扫描仪参数的接口。
系统能力: SystemCapability.Print.PrintFramework
属性:
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| optionName | string | 否 | 否 | 选项名称。 |
| optionIndex | number | 否 | 否 | 选项索引。 |
| optionTitle | string | 否 | 否 | 选项标题。 |
| optionDesc | string | 否 | 否 | 选项描述。 |
| optionType | OptionValueType | 否 | 否 | 选项值类型。 |
| optionUnit | PhysicalUnit | 否 | 否 | 选项物理单位。 |
| optionConstraintType | ConstraintType | 否 | 否 | 选项约束类型,决定有效的约束字段。当类型为SCAN_CONSTRAINT_NONE时无约束。 |
| optionConstraintString | string[] | 否 | 是 | 选项字符串约束,仅在optionConstraintType为SCAN_CONSTRAINT_STRING_LIST时有效。默认为空数组。 |
| optionConstraintInt | number[] | 否 | 是 | 选项整数约束,仅在optionConstraintType为SCAN_CONSTRAINT_WORD_LIST时有效。默认为空数组。 |
| optionConstraintRange | Range | 否 | 是 | 选项范围约束,仅在optionConstraintType为SCAN_CONSTRAINT_RANGE时有效。 |
定义扫描仪选项值的接口。当对应选项的约束类型为SCAN_CONSTRAINT_STRING_LIST时,选项取值应为optionConstraintString集合中的字符串。
系统能力: SystemCapability.Print.PrintFramework
属性:
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| valueType | OptionValueType | 否 | 否 | 值类型,决定应使用的值字段。 |
| numValue | number | 否 | 是 | 数值,仅在valueType为SCAN_TYPE_INT或SCAN_TYPE_FIXED时有效。 |
| strValue | string | 否 | 是 | 字符串值,仅在valueType为SCAN_TYPE_STRING时有效。 |
| boolValue | boolean | 否 | 是 | 布尔值,仅在valueType为SCAN_TYPE_BOOL时有效。 |
定义图片扫描进度的接口。
系统能力: SystemCapability.Print.PrintFramework
属性:
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| progress | number | 否 | 否 | 当前进度百分比,取值范围为0~100。 |
| pictureFd | number | 否 | 否 | 扫描图片的文件描述符。 |
| isFinal | boolean | 否 | 否 | 是否是本次扫描的最后一张图片。true表示是最后一张图片,false表示不是最后一张图片。 |
定义扫描仪设备的接口。
系统能力: SystemCapability.Print.PrintFramework
属性:
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| scannerId | string | 否 | 否 | 扫描仪的ID。 |
| discoveryMode | ScannerDiscoveryMode | 否 | 否 | 扫描仪的发现模式,表示发现扫描仪的方式。 |
| uniqueId | string | 否 | 否 | 扫描仪的唯一ID。 |
| manufacturer | string | 否 | 否 | 扫描仪的制造商。 |
| model | string | 否 | 否 | 扫描仪的型号。 |
| deviceName | string | 否 | 否 | 扫描仪的设备名称。 |
定义扫描仪同步设备的接口。
系统能力: SystemCapability.Print.PrintFramework
属性:
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| scannerId | string | 否 | 否 | 扫描仪的ID。 |
| discoveryMode | ScannerDiscoveryMode | 否 | 否 | 扫描仪的发现模式,表示发现扫描仪的方式。 |
| uniqueId | string | 否 | 否 | 扫描仪的唯一ID。 |
| syncMode | ScannerSyncMode | 否 | 否 | 同步模式,决定oldScannerId是否有效:当syncMode为"update"时oldScannerId有效,为"delete"时oldScannerId无效。 |
| oldScannerId | string | 否 | 是 | 旧的扫描仪ID,仅在syncMode为"update"时有效,默认值为空字符串。 |
init(): Promise<void>
初始化扫描服务,必须在调用其它扫描接口前完成初始化。使用Promise异步回调。使用完毕后需调用exit()退出扫描服务,释放资源。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,初始化扫描服务成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
scan.init().then(() => {
console.info('scan init success');
}).catch((error: BusinessError) => {
console.error(`Failed to init scan. Code: ${error.code}, message: ${error.message}`);
}); exit(): Promise<void>
退出扫描服务。使用Promise异步回调。扫描服务退出后,其它扫描方法将不可用,如需再次使用需重新调用init()。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,退出扫描服务成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
scan.exit().then(() => {
console.info('scan exit success');
}).catch((error: BusinessError) => {
console.error(`Failed to exit scan. Code: ${error.code}, message: ${error.message}`);
}); startScannerDiscovery(): Promise<void>
开始发现扫描仪,发现的扫描仪设备信息通过on('scanDeviceFound')事件回调通知。需在调用init()完成初始化后使用。使用Promise异步回调。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,开始发现扫描仪成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
scan.startScannerDiscovery().then(() => {
console.info('start scanner discovery success');
}).catch((error: BusinessError) => {
console.error(`Failed to start scanner discovery. Code: ${error.code}, message: ${error.message}`);
}); openScanner(scannerId: string): Promise<void>
打开扫描仪。需在调用init()完成初始化后使用。使用Promise异步回调。在使用完毕后,需调用closeScanner()关闭扫描仪,释放资源。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 要打开的扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,打开扫描仪成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
scan.openScanner(scannerId).then(() => {
console.info('open scanner success');
}).catch((error: BusinessError) => {
console.error(`Failed to open scanner. Code: ${error.code}, message: ${error.message}`);
}); closeScanner(scannerId: string): Promise<void>
关闭扫描仪。使用Promise异步回调。扫描仪关闭后,将不能再对该扫描仪执行参数获取、设置、扫描等操作。如需再次使用需重新调用openScanner()。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 要关闭的扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,关闭扫描仪成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
scan.closeScanner(scannerId).then(() => {
console.info('close scanner success');
}).catch((error: BusinessError) => {
console.error(`Failed to close scanner. Code: ${error.code}, message: ${error.message}`);
}); getScannerParameter(scannerId: string): Promise<ScannerParameter[]>
获取扫描仪参数。使用Promise异步回调。必须在调用openScanner()打开扫描仪之后才能调用此方法。应用可通过此方法获取参数索引(optionIndex),用于setScannerParameter、setScanAutoOption和getScannerCurrentSetting等方法的调用。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<ScannerParameter[]> | Promise对象,获取扫描仪参数成功时resolve并返回扫描仪参数数组,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
scan.getScannerParameter(scannerId).then((parameters: scan.ScannerParameter[]) => {
console.info('get scanner parameters success: ' + JSON.stringify(parameters));
}).catch((error: BusinessError) => {
console.error(`Failed to get scanner parameters. Code: ${error.code}, message: ${error.message}`);
}); setScannerParameter(scannerId: string, optionIndex: number, value: ScannerOptionValue): Promise<void>
设置扫描仪参数。使用Promise异步回调。必须在调用openScanner()打开扫描仪之后才能调用此方法。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 要设置参数的扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
| optionIndex | number | 是 | 要设置的选项的索引,可通过getScannerParameter()获取。 |
| value | ScannerOptionValue | 是 | 要设置的扫描仪选项值,包含值类型(valueType)及对应的数值(numValue)、字符串值(strValue)或布尔值(boolValue)。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,设置扫描仪参数成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
let optionIndex: number = 1;
let value: scan.ScannerOptionValue = {
valueType: scan.OptionValueType.SCAN_TYPE_INT,
numValue: 100
};
scan.setScannerParameter(scannerId, optionIndex, value).then(() => {
console.info('set scanner parameter success');
}).catch((error: BusinessError) => {
console.error(`Failed to set scanner parameter. Code: ${error.code}, message: ${error.message}`);
}); setScanAutoOption(scannerId: string, optionIndex: number): Promise<void>
设置扫描选项为自动模式,由扫描仪自动确定该选项的取值。使用Promise异步回调。必须在调用openScanner()打开扫描仪之后才能调用此方法。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
| optionIndex | number | 是 | 要设置为自动的选项的索引,可通过getScannerParameter()获取。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,设置扫描选项为自动模式成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
let optionIndex: number = 1;
scan.setScanAutoOption(scannerId, optionIndex).then(() => {
console.info('set scan auto option success');
}).catch((error: BusinessError) => {
console.error(`Failed to set scan auto option. Code: ${error.code}, message: ${error.message}`);
}); getScannerCurrentSetting(scannerId: string, optionIndex: number): Promise<ScannerOptionValue>
获取当前扫描仪设置。使用Promise异步回调。必须在调用openScanner()打开扫描仪之后才能调用此方法。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 要获取当前设置的扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
| optionIndex | number | 是 | 要获取的选项的索引,可通过getScannerParameter()获取。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<ScannerOptionValue> | Promise对象,获取当前扫描仪设置成功时resolve并返回扫描仪选项值,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
let optionIndex: number = 1;
scan.getScannerCurrentSetting(scannerId, optionIndex).then((value: scan.ScannerOptionValue) => {
console.info('get scanner current setting success: ' + JSON.stringify(value));
}).catch((error: BusinessError) => {
console.error(`Failed to get scanner current setting. Code: ${error.code}, message: ${error.message}`);
}); startScan(scannerId: string, batchMode: boolean): Promise<void>
开始扫描。使用Promise异步回调。必须在调用openScanner()打开扫描仪之后才能调用此方法。扫描过程中可通过getPictureScanProgress()获取扫描进度;需要取消扫描时,可调用cancelScan()。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
| batchMode | boolean | 是 | 是否使用批处理模式。true表示使用批处理模式,可连续扫描多页文档;false表示不使用批处理模式,仅扫描单页。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,开始扫描成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
let batchMode: boolean = true;
scan.startScan(scannerId, batchMode).then(() => {
console.info('start scan success');
}).catch((error: BusinessError) => {
console.error(`Failed to start scan. Code: ${error.code}, message: ${error.message}`);
}); cancelScan(scannerId: string): Promise<void>
取消扫描。使用Promise异步回调。必须在开始扫描之后才能调用此方法。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象,取消扫描成功时resolve,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
scan.cancelScan(scannerId).then(() => {
console.info('cancel scan success');
}).catch((error: BusinessError) => {
console.error(`Failed to cancel scan. Code: ${error.code}, message: ${error.message}`);
}); getPictureScanProgress(scannerId: string): Promise<PictureScanProgress>
获取图片扫描进度。使用Promise异步回调。必须在开始扫描之后才能调用此方法。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scannerId | string | 是 | 扫描仪的ID,可以在startScannerDiscovery后通过scanDeviceFound回调获取。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<PictureScanProgress> | Promise对象,获取图片扫描进度成功时resolve并返回图片扫描进度信息,失败时reject。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
import { BusinessError } from '@kit.BasicServicesKit';
let scannerId: string = 'scanner_001';
scan.getPictureScanProgress(scannerId).then((progress: scan.PictureScanProgress) => {
console.info('get picture scan progress success: ' + JSON.stringify(progress));
}).catch((error: BusinessError) => {
console.error(`Failed to get picture scan progress. Code: ${error.code}, message: ${error.message}`);
}); on(type: 'scanDeviceFound', callback: Callback<ScannerDevice>): void
注册扫描仪设备发现事件回调,当调用startScannerDiscovery发现新的扫描仪设备时会触发此事件。使用callback异步回调。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | 'scanDeviceFound' | 是 | 事件类型。 |
| callback | Callback<ScannerDevice> | 是 | 回调函数,返回扫描仪设备发现信息。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
scan.on('scanDeviceFound', (device: scan.ScannerDevice) => {
console.info('scan device found: ' + JSON.stringify(device));
}); off(type: 'scanDeviceFound', callback?: Callback<ScannerDevice>): void
取消注册扫描仪设备发现事件回调。
需要权限: ohos.permission.PRINT
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | 'scanDeviceFound' | 是 | 事件类型。 |
| callback | Callback<ScannerDevice> | 否 | 需要取消注册的回调函数。若不传入,则取消调用方所有已注册的回调。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
let callback = (device: scan.ScannerDevice) => {
console.info('scan device found: ' + JSON.stringify(device));
};
scan.on('scanDeviceFound', callback);
// 取消注册
scan.off('scanDeviceFound', callback); on(type: 'scanDeviceSync', callback: Callback<ScannerSyncDevice>): void
注册扫描仪设备同步事件回调,当扫描仪设备状态发生变化(如扫描仪设备ID变更或掉线)时会触发此事件,通知应用同步维护扫描仪列表。使用callback异步回调。适用于应用需要持续跟踪扫描仪设备状态变化的场景,如扫描仪重新连接时更新本地设备信息。
需要权限: ohos.permission.MANAGE_PRINT_JOB
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | 'scanDeviceSync' | 是 | 事件类型。 |
| callback | Callback<ScannerSyncDevice> | 是 | 回调函数,返回扫描仪设备同步信息。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
scan.on('scanDeviceSync', (device: scan.ScannerSyncDevice) => {
console.info('scan device sync: ' + JSON.stringify(device));
}); off(type: 'scanDeviceSync', callback?: Callback<ScannerSyncDevice>): void
取消注册扫描仪设备同步事件回调。
需要权限: ohos.permission.MANAGE_PRINT_JOB
系统能力: SystemCapability.Print.PrintFramework
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | 'scanDeviceSync' | 是 | 事件类型。 |
| callback | Callback<ScannerSyncDevice> | 否 | 需要取消注册的回调函数。若不传入,则取消调用方所有已注册的回调。 |
错误码:
| 错误码ID | 错误信息 |
|---|---|
| 201 | Permission denied. |
示例:
import { scan } from '@kit.BasicServicesKit';
let callback = (device: scan.ScannerSyncDevice) => {
console.info('scan device sync: ' + JSON.stringify(device));
};
scan.on('scanDeviceSync', callback);
// 取消注册
scan.off('scanDeviceSync', callback);