鴻蒙OS 碼生成開發(fā)指導(dǎo)

2020-09-18 14:52 更新

場(chǎng)景介紹

碼生成能夠根據(jù)給定的字符串信息,生成相應(yīng)的二維碼圖片。常見應(yīng)用場(chǎng)景舉例:

  • 社交或通訊類應(yīng)用:根據(jù)輸入的聯(lián)系人信息,生成聯(lián)系人二維碼。
  • 購(gòu)物或支付類應(yīng)用:根據(jù)輸入的支付鏈接,生成收款或付款二維碼。

接口說(shuō)明

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

接口名 方法 功能描述
IBarcodeDetector int detect(String barcodeInput, byte[] bitmapOutput, int width, int height); 根據(jù)給定的信息和二維碼圖片尺寸,生成二維碼圖片字節(jié)流。
IBarcodeDetector int release(); 停止QR碼生成服務(wù),釋放資源。

開發(fā)步驟

  1. 在使用碼生成 SDK 時(shí),需要先將相關(guān)的類添加至工程。

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

  1. 定義 ConnectionCallback 回調(diào),實(shí)現(xiàn)連接能力引擎成功與否后的操作。

   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. 調(diào)用 VisionManager.init() 方法,將此工程的 context 和 connectionCallback 作為入?yún)?,建立與能力引擎的連接,context 應(yīng)為 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的實(shí)例或子類實(shí)例。

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

  1. 實(shí)例化 IBarcodeDetector 接口,將此工程的 context 作為入?yún)ⅰ?/li>

   IBarcodeDetector barcodeDetector = VisionManager.getBarcodeDetector(context);

  1. 定義碼生成圖像的尺寸,并根據(jù)圖像大小分配字節(jié)流數(shù)組空間。

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

  1. 調(diào)用 IBarcodeDetector 的 detect() 方法,根據(jù)輸入的字符串信息生成相應(yīng)的二維碼圖片字節(jié)流。

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

如果返回值為 0,表明調(diào)用成功。

  1. 當(dāng)碼生成能力使用完畢后,調(diào)用 IBarcodeDetector 的 release() 方法,釋放資源。

   result = barcodeDetector.release();

  1. 調(diào)用 VisionManager.destroy() 方法,斷開與能力引擎的連接。

   VisionManager.destroy();
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)