“HmsScan”对象是Scan Kit返回的统一类,包含码在输入图片中的坐标、码的原始数据、码的制式、结构化数据、zoomValue等信息。
调用模式 | 返回对象 | 包含内容 | ||||
Default View mode | HmsScan | 原始码值getOriginalValue() | 码制式getScanType() | 结构化数据getScanTypeForm() | 码在图片中的位置getBorderRect() | |
Customized View mode | HmsScan | 原始码值getOriginalValue() | 码制式getScanType() | 结构化数据getScanTypeForm() | 码在图片中的位置getBorderRect() | |
BitMap mode | HmsScan | 原始码值getOriginalValue() | 码制式getScanType() | 结构化数据getScanTypeForm() | 码在图片中的位置getBorderRect() | 焦距调整倍数 getZoomValue() (仅相机扫码模式包含该信息,即Photo mode 为False) |
Multiprocessor mode | HmsScan | 原始码值getOriginalValue() | 码制式getScanType() | 结构化数据getScanTypeForm() | 码在图片中的位置getBorderRect() | |
1. zoomValue:焦距调整倍数,开发者需要根据此数值调整相机焦距,具体参考相机扫码模式。
2. 结构化数据:从使用特定内容格式编码的二维码、条码中提取的有效信息 。Scan Kit当前已支持结构化提取Wi-Fi、EMAIL、PHONE、ISBN、PRODUCT、SMS、TEXT、URL、CONTACT INFO、GEO、CALENDAR EVENT、DRIVER LICENSE 这12种码中的有效信息并返回给开发者,以便于开发者快速构建对应的服务。详细参考HmsScan。
码图结果示例:
二维码图片 | Scan Kit 返回的数据类型 | 获取该数据的调用函数 | 应用获取的数据 |
| 原始码值 | getOriginalValue() | smsto:18300000000:Hello World! |
SMS信息-手机号 | getDestPhoneNumber() | 18300000000 | |
SMS信息-短信内容 | getSmsContent() | Hello World! | |
| 原始码值 | getOriginalValue() | WIFI:S:WIFI_123;T:WPA;P:12345678;; |
WIFI信息-SSID | getSsidNumber() | WIFI_123 | |
WIFI信息-密码 | getPassword() | 12345678 | |
WIFI信息-加密类型 | getCipherMode() | WPA |
例如,您的应用需要获取SMS或WIFI的结构化数据,可参考如下示例代码:
- public void parseResult(HmsScan result) {
- if (result.getScanTypeForm() == HmsScan.SMS_FORM) {
- HmsScan.SmsContent smsContent = result.getSmsContent();
- String content = smsContent.getMsgContent();
- String phoneNumber = smsContent.getDestPhoneNumber();
- } else if (result.getScanTypeForm() == HmsScan.WIFI_CONNECT_INFO_FORM){
- HmsScan.WiFiConnectionInfo wifiConnectionInfo = result.getWiFiConnectionInfo();
- String password = wifiConnectionInfo.getPassword();
- String ssidNumber = wifiConnectionInfo.getSsidNumber();
- int cipherMode = wifiConnectionInfo.getCipherMode();
- }
- }