codecamp

鸿蒙OS 码生成开发指导

场景介绍

码生成能够根据给定的字符串信息,生成相应的二维码图片。常见应用场景举例:

  • 社交或通讯类应用:根据输入的联系人信息,生成联系人二维码。
  • 购物或支付类应用:根据输入的支付链接,生成收款或付款二维码。

接口说明

码生成提供了的 IBarcodeDetector()接口,常用方法的功能描述如下:

接口名 方法 功能描述
IBarcodeDetector int detect(String barcodeInput, byte[] bitmapOutput, int width, int height); 根据给定的信息和二维码图片尺寸,生成二维码图片字节流。
IBarcodeDetector int release(); 停止QR码生成服务,释放资源。

开发步骤

  1. 在使用码生成 SDK 时,需要先将相关的类添加至工程。

   import ohos.cvinterface.common.ConnectionCallback;import ohos.cvinterface.common.VisionManager;import ohos.cvinterface.qrcode.IBarcodeDetector;

  1. 定义 ConnectionCallback 回调,实现连接能力引擎成功与否后的操作。

   ConnectionCallback connectionCallback = new ConnectionCallback() {
       @Override
       public void onServiceConnect() {
           // Do something when service connects successfully
       }

    
       @Override
       public void onServiceDisconnect() {
           // Do something when service connects unsuccessfully
       }
   };

  1. 调用 VisionManager.init() 方法,将此工程的 context 和 connectionCallback 作为入参,建立与能力引擎的连接,context 应为 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的实例或子类实例。

   int result = VisionManager.init(context, connectionCallback);

  1. 实例化 IBarcodeDetector 接口,将此工程的 context 作为入参。

   IBarcodeDetector barcodeDetector = VisionManager.getBarcodeDetector(context);

  1. 定义码生成图像的尺寸,并根据图像大小分配字节流数组空间。

   final int SAMPLE_LENGTH = 152;
   byte[] byteArray = new byte[SAMPLE_LENGTH * SAMPLE_LENGTH * 4];

  1. 调用 IBarcodeDetector 的 detect() 方法,根据输入的字符串信息生成相应的二维码图片字节流。

   int result = barcodeDetector.detect("This is a TestCase of IBarcodeDetector", byteArray, SAMPLE_LENGTH, SAMPLE_LENGTH);

如果返回值为 0,表明调用成功。

  1. 当码生成能力使用完毕后,调用 IBarcodeDetector 的 release() 方法,释放资源。

   result = barcodeDetector.release();

  1. 调用 VisionManager.destroy() 方法,断开与能力引擎的连接。

   VisionManager.destroy();
鸿蒙OS 码生成概述
鸿蒙OS NFC
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }