1e41f4b71Sopenharmony_ci# OH_Scan 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## Overview 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ciEnables applications to use CAPI to access scanners. 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci**Since**: 12 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## Summary 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci### Types 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci| Name| Description| 17e41f4b71Sopenharmony_ci| -------- | -------- | 18e41f4b71Sopenharmony_ci| Scan_ScannerDevice | Device information of a scanner.| 19e41f4b71Sopenharmony_ci| Scan_PictureScanProgress | Image scanning progress.| 20e41f4b71Sopenharmony_ci| Scan_ScannerOptions | Scanner options.| 21e41f4b71Sopenharmony_ci| Scan_ScannerDiscoveryCallback | Callback function for scanner discovery.| 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci### Enums 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci| Name| Description| 27e41f4b71Sopenharmony_ci| -------- | -------- | 28e41f4b71Sopenharmony_ci| Scan_ErrorCode | Enumerates the error codes.| 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci### Functions 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci| Name| Description| 34e41f4b71Sopenharmony_ci| -------- | -------- | 35e41f4b71Sopenharmony_ci| OH_Scan_Init | Starts the scanning service, initializes the client, and establishes a connection with the scanning service.| 36e41f4b71Sopenharmony_ci| OH_Scan_StartScannerDiscovery | Searches for scanners and registers a callback function to process the found scanners.| 37e41f4b71Sopenharmony_ci| OH_Scan_OpenScanner | Connects to a scanner.| 38e41f4b71Sopenharmony_ci| OH_Scan_CloseScanner | Disconnects from the scanner.| 39e41f4b71Sopenharmony_ci| OH_Scan_GetScannerParameter | Obtains scanner settings.| 40e41f4b71Sopenharmony_ci| OH_Scan_SetScannerParameter | Sets the option parameters of the scanner. | 41e41f4b71Sopenharmony_ci| OH_Scan_StartScan | Starts the scanner.| 42e41f4b71Sopenharmony_ci| OH_Scan_CancelScan | Cancels scanning.| 43e41f4b71Sopenharmony_ci| OH_Scan_GetPictureScanProgress | Queries the image scanning progress.| 44e41f4b71Sopenharmony_ci| OH_Scan_Exit | Exits the scanning service and releases the client memory.| 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci## Type Description 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci### Scan_ScannerDevice 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci**Description** 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ciDevice information of a scanner. 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci**Since**: 12 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ci| Member | Description | 59e41f4b71Sopenharmony_ci| ------------ | -------- | 60e41f4b71Sopenharmony_ci| scannerId | Scanner ID.| 61e41f4b71Sopenharmony_ci| manufacturer | Manufacturer. | 62e41f4b71Sopenharmony_ci| model | Device model.| 63e41f4b71Sopenharmony_ci| discoverMode | Device discovery mode| 64e41f4b71Sopenharmony_ci| serialNumber | Serial number. | 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci### Scan_PictureScanProgress 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci**Description** 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ciImage scanning progress. 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci**Since**: 12 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci| Member | Description | 75e41f4b71Sopenharmony_ci| -------- | ----------------------- | 76e41f4b71Sopenharmony_ci| progress | Image scanning progress. The value ranges from 0 to 100.| 77e41f4b71Sopenharmony_ci| fd | Image handle. | 78e41f4b71Sopenharmony_ci| isFinal | Whether the next image is available. | 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci### Scan_ScannerOptions 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci**Description** 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ciScanner options. 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci**Since**: 12 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci| Member | Description | 89e41f4b71Sopenharmony_ci| ------------ | ------------ | 90e41f4b71Sopenharmony_ci| titles | Option title. | 91e41f4b71Sopenharmony_ci| descriptions | Option description.| 92e41f4b71Sopenharmony_ci| ranges | Option range. | 93e41f4b71Sopenharmony_ci| optionCount | Number of options. | 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci### Scan_ScannerDiscoveryCallback 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci**Description** 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ciCallback function for scanner discovery. 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci**Since**: 12 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci| Parameter | Description | 104e41f4b71Sopenharmony_ci| ----------- | ---------- | 105e41f4b71Sopenharmony_ci| devices | Scanner.| 106e41f4b71Sopenharmony_ci| deviceCount | Number of scanners. | 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci## Enum Description 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ci### Scan_ErrorCode 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci**Description** 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ciEnumerates the error codes. 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci**Since**: 12 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci| Value| Description| 122e41f4b71Sopenharmony_ci| -------- | -------- | 123e41f4b71Sopenharmony_ci| SCAN_ERROR_NONE | Operation succeeded.| 124e41f4b71Sopenharmony_ci| SCAN_ERROR_NO_PERMISSION | Permission denied.| 125e41f4b71Sopenharmony_ci| SCAN_ERROR_INVALID_PARAMETER | Invalid parameter.| 126e41f4b71Sopenharmony_ci| SCAN_ERROR_GENERIC_FAILURE | Internal error.| 127e41f4b71Sopenharmony_ci| SCAN_ERROR_RPC_FAILURE | PRC communication error.| 128e41f4b71Sopenharmony_ci| SCAN_ERROR_SERVER_FAILURE | Server error.| 129e41f4b71Sopenharmony_ci| SCAN_ERROR_UNSUPPORTED | Operation is not supported.| 130e41f4b71Sopenharmony_ci| SCAN_ERROR_CANCELED | Operation canceled.| 131e41f4b71Sopenharmony_ci| SCAN_ERROR_DEVICE_BUSY | Device is busy.| 132e41f4b71Sopenharmony_ci| SCAN_ERROR_INVALID | Invalid operation.| 133e41f4b71Sopenharmony_ci| SCAN_ERROR_JAMMED | Paper jammed at the paper feeder.| 134e41f4b71Sopenharmony_ci| SCAN_ERROR_NO_DOCS | Out of paper.| 135e41f4b71Sopenharmony_ci| SCAN_ERROR_COVER_OPEN | The cover of the scanner is opened.| 136e41f4b71Sopenharmony_ci| SCAN_ERROR_IO_ERROR | Scanner I/O operation error.| 137e41f4b71Sopenharmony_ci| SCAN_ERROR_NO_MEMORY | Insufficient memory.| 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci## Function Description 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_ci### OH_Scan_Init() 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ci```cpp 146e41f4b71Sopenharmony_ciint32_t OH_Scan_Init(); 147e41f4b71Sopenharmony_ci``` 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci**Description** 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ciStarts the scanning service, initializes the client, and establishes a connection with the scanning service. 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci**Since**: 12 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci**Returns** 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci### OH_Scan_StartScannerDiscovery() 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci```cpp 170e41f4b71Sopenharmony_ciint32_t OH_Scan_StartScannerDiscovery(Scan_ScannerDiscoveryCallback callback); 171e41f4b71Sopenharmony_ci``` 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci**Description** 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ciSearches for scanners and registers a callback function to process the found scanners. 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci**Since**: 12 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci**Parameters** 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci| Name | Description | 184e41f4b71Sopenharmony_ci| -------- | -------------------------- | 185e41f4b71Sopenharmony_ci| callback | Callback function for scanner discovery.| 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci**Returns** 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ci### OH_Scan_OpenScanner() 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci```cpp 200e41f4b71Sopenharmony_ciint32_t OH_Scan_OpenScanner(const char* scannerId); 201e41f4b71Sopenharmony_ci``` 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci**Description** 204e41f4b71Sopenharmony_ci 205e41f4b71Sopenharmony_ciConnects to a scanner. 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci**Since**: 12 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci**Parameters** 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci| Name | Description | 214e41f4b71Sopenharmony_ci| --------- | ---------- | 215e41f4b71Sopenharmony_ci| scannerId | Scanner ID.| 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci**Returns** 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci**SCAN_ERROR_DEVICE_BUSY**: The scanner is busy. 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid. 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_ci**SCAN_ERROR_IO_ERROR**: An I/O operation error occurs on the scanner. 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_MEMORY**: The scanner memory is insufficient. 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_ci### OH_Scan_CloseScanner() 236e41f4b71Sopenharmony_ci 237e41f4b71Sopenharmony_ci```cpp 238e41f4b71Sopenharmony_ciint32_t OH_Scan_CloseScanner(const char* scannerId); 239e41f4b71Sopenharmony_ci``` 240e41f4b71Sopenharmony_ci 241e41f4b71Sopenharmony_ci**Description** 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ciDisconnects from a scanner. 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci**Since**: 12 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_ci**Parameters** 250e41f4b71Sopenharmony_ci 251e41f4b71Sopenharmony_ci| Name | Description | 252e41f4b71Sopenharmony_ci| --------- | ---------- | 253e41f4b71Sopenharmony_ci| scannerId | Scanner ID.| 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_ci**Returns** 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid. 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci### OH_Scan_GetScannerParameter() 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci```cpp 270e41f4b71Sopenharmony_ciScan_ScannerOptions* OH_Scan_GetScannerParameter(const char* scannerId, int32_t* errorCode); 271e41f4b71Sopenharmony_ci``` 272e41f4b71Sopenharmony_ci 273e41f4b71Sopenharmony_ci**Description** 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ciObtains the scanner setting options. The memory is automatically released when returned structure points to {@link OH_Scan_Exit}. Only one copy of each scanner model is stored in the memory. 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ci**Since**: 12 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_ci**Parameters** 282e41f4b71Sopenharmony_ci 283e41f4b71Sopenharmony_ci| Name | Description | 284e41f4b71Sopenharmony_ci| --------- | ---------- | 285e41f4b71Sopenharmony_ci| scannerId | Scanner ID.| 286e41f4b71Sopenharmony_ci| errorCode | Error code. | 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ci**Returns** 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 291e41f4b71Sopenharmony_ci 292e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 295e41f4b71Sopenharmony_ci 296e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci### OH_Scan_SetScannerParameter() 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci```cpp 301e41f4b71Sopenharmony_ciint32_t OH_Scan_SetScannerParameter(const char* scannerId, const int32_t option, const char* value); 302e41f4b71Sopenharmony_ci``` 303e41f4b71Sopenharmony_ci 304e41f4b71Sopenharmony_ci**Description** 305e41f4b71Sopenharmony_ci 306e41f4b71Sopenharmony_ciSets the option parameters of the scanner. The option values are obtained through the {@link OH_Scan_GetScannerParameter} API. 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 309e41f4b71Sopenharmony_ci 310e41f4b71Sopenharmony_ci**Since**: 12 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci**Parameters** 313e41f4b71Sopenharmony_ci 314e41f4b71Sopenharmony_ci| Name | Description | 315e41f4b71Sopenharmony_ci| --------- | ---------- | 316e41f4b71Sopenharmony_ci| scannerId | Scanner ID.| 317e41f4b71Sopenharmony_ci| option | Option Number. | 318e41f4b71Sopenharmony_ci| value | Option value. | 319e41f4b71Sopenharmony_ci 320e41f4b71Sopenharmony_ci**Returns** 321e41f4b71Sopenharmony_ci 322e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 323e41f4b71Sopenharmony_ci 324e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 325e41f4b71Sopenharmony_ci 326e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 327e41f4b71Sopenharmony_ci 328e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 329e41f4b71Sopenharmony_ci 330e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid. 331e41f4b71Sopenharmony_ci 332e41f4b71Sopenharmony_ci### OH_Scan_StartScan() 333e41f4b71Sopenharmony_ci 334e41f4b71Sopenharmony_ci```cpp 335e41f4b71Sopenharmony_ciint32_t OH_Scan_StartScan(const char* scannerId, bool batchMode); 336e41f4b71Sopenharmony_ci``` 337e41f4b71Sopenharmony_ci 338e41f4b71Sopenharmony_ci**Description** 339e41f4b71Sopenharmony_ci 340e41f4b71Sopenharmony_ciStarts a scanner. 341e41f4b71Sopenharmony_ci 342e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 343e41f4b71Sopenharmony_ci 344e41f4b71Sopenharmony_ci**Since**: 12 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ci**Parameters** 347e41f4b71Sopenharmony_ci 348e41f4b71Sopenharmony_ci| Name | Description | 349e41f4b71Sopenharmony_ci| --------- | ---------- | 350e41f4b71Sopenharmony_ci| scannerId | Scanner ID.| 351e41f4b71Sopenharmony_ci| batchMode | Batch processing mode.| 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci**Returns** 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 356e41f4b71Sopenharmony_ci 357e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 358e41f4b71Sopenharmony_ci 359e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 360e41f4b71Sopenharmony_ci 361e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid. 364e41f4b71Sopenharmony_ci 365e41f4b71Sopenharmony_ci**SCAN_ERROR_JAMMED**: Paper jammed at the paper feeder. 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_DOCS**: The scanner is out of paper. 368e41f4b71Sopenharmony_ci 369e41f4b71Sopenharmony_ci**SCAN_ERROR_COVER_OPEN**: The cover of the scanner is opened. 370e41f4b71Sopenharmony_ci 371e41f4b71Sopenharmony_ci**SCAN_ERROR_IO_ERROR**: An I/O operation exception occurs on the scanner. 372e41f4b71Sopenharmony_ci 373e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_MEMORY**: The scanner memory is insufficient. 374e41f4b71Sopenharmony_ci 375e41f4b71Sopenharmony_ci**SCAN_ERROR_DEVICE_BUSY**: The scanner is busy. 376e41f4b71Sopenharmony_ci 377e41f4b71Sopenharmony_ci### OH_Scan_CancelScan() 378e41f4b71Sopenharmony_ci 379e41f4b71Sopenharmony_ci```cpp 380e41f4b71Sopenharmony_ciint32_t OH_Scan_CancelScan(const char* scannerId); 381e41f4b71Sopenharmony_ci``` 382e41f4b71Sopenharmony_ci 383e41f4b71Sopenharmony_ci**Description** 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_ciCancels scanning. 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 388e41f4b71Sopenharmony_ci 389e41f4b71Sopenharmony_ci**Since**: 12 390e41f4b71Sopenharmony_ci 391e41f4b71Sopenharmony_ci**Parameters** 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci| Name | Description | 394e41f4b71Sopenharmony_ci| --------- | ---------- | 395e41f4b71Sopenharmony_ci| scannerId | Scanner ID.| 396e41f4b71Sopenharmony_ci 397e41f4b71Sopenharmony_ci**Returns** 398e41f4b71Sopenharmony_ci 399e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 400e41f4b71Sopenharmony_ci 401e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 402e41f4b71Sopenharmony_ci 403e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 404e41f4b71Sopenharmony_ci 405e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 406e41f4b71Sopenharmony_ci 407e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid. 408e41f4b71Sopenharmony_ci 409e41f4b71Sopenharmony_ci### OH_Scan_GetPictureScanProgress() 410e41f4b71Sopenharmony_ci 411e41f4b71Sopenharmony_ci```cpp 412e41f4b71Sopenharmony_ciint32_t OH_Scan_GetPictureScanProgress(const char* scannerId, Scan_PictureScanProgress* prog); 413e41f4b71Sopenharmony_ci``` 414e41f4b71Sopenharmony_ci 415e41f4b71Sopenharmony_ci**Description** 416e41f4b71Sopenharmony_ci 417e41f4b71Sopenharmony_ciQueries the image scanning progress. 418e41f4b71Sopenharmony_ci 419e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 420e41f4b71Sopenharmony_ci 421e41f4b71Sopenharmony_ci**Since**: 12 422e41f4b71Sopenharmony_ci 423e41f4b71Sopenharmony_ci**Parameters** 424e41f4b71Sopenharmony_ci 425e41f4b71Sopenharmony_ci| Name | Description | 426e41f4b71Sopenharmony_ci| --------- | ------------ | 427e41f4b71Sopenharmony_ci| scannerId | Scanner ID. | 428e41f4b71Sopenharmony_ci| prog | Image scanning progress.| 429e41f4b71Sopenharmony_ci 430e41f4b71Sopenharmony_ci**Returns** 431e41f4b71Sopenharmony_ci 432e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 439e41f4b71Sopenharmony_ci 440e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid. 441e41f4b71Sopenharmony_ci 442e41f4b71Sopenharmony_ci**SCAN_ERROR_JAMMED**: Paper jammed at the paper feeder. 443e41f4b71Sopenharmony_ci 444e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_DOCS**: The scanner is out of paper. 445e41f4b71Sopenharmony_ci 446e41f4b71Sopenharmony_ci**SCAN_ERROR_COVER_OPEN**: The cover of the scanner is opened. 447e41f4b71Sopenharmony_ci 448e41f4b71Sopenharmony_ci**SCAN_ERROR_IO_ERROR**: An I/O operation exception occurs on the scanner. 449e41f4b71Sopenharmony_ci 450e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_MEMORY**: The scanner memory is insufficient. 451e41f4b71Sopenharmony_ci 452e41f4b71Sopenharmony_ci**SCAN_ERROR_DEVICE_BUSY**: The scanner is busy. 453e41f4b71Sopenharmony_ci 454e41f4b71Sopenharmony_ci### OH_Scan_Exit() 455e41f4b71Sopenharmony_ci 456e41f4b71Sopenharmony_ci```cpp 457e41f4b71Sopenharmony_ciint32_t OH_Scan_Exit(); 458e41f4b71Sopenharmony_ci``` 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci**Description** 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ciExits the scanning service, clear the client memory, and cancel the registered scanning callback function. 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci**System capability**: ohos.permission.PRINT 465e41f4b71Sopenharmony_ci 466e41f4b71Sopenharmony_ci**Since**: 12 467e41f4b71Sopenharmony_ci 468e41f4b71Sopenharmony_ci**Returns** 469e41f4b71Sopenharmony_ci 470e41f4b71Sopenharmony_ci**Scan_ERROR_NONE**: Operation is succeeded. 471e41f4b71Sopenharmony_ci 472e41f4b71Sopenharmony_ci**SCAN_ERROR_NO_PERMISSION**: Permission is denied. 473e41f4b71Sopenharmony_ci 474e41f4b71Sopenharmony_ci**SCAN_ERROR_RPC_FAILURE**: An RPC communication error occurs. 475e41f4b71Sopenharmony_ci 476e41f4b71Sopenharmony_ci**SCAN_ERROR_SERVER_FAILURE**: A server exception occurs. 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci**SCAN_ERROR_INVALID_PARAMETER**: The parameter is invalid. 479