日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集成HMS Scan Kit扫码SDK,轻松实现手机扫码选购

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集成HMS Scan Kit扫码SDK,轻松实现手机扫码选购 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景


在購物類APP中,通過掃描二維碼的入口,掃描商品的二維碼,直接顯示商品信息和購買鏈接,方便客戶選購商品。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

整體方案


開發前準備


打開AndroidStudio項目級build.gradle文件



? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
在allprojects ->repositories里面配置HMS SDK的maven倉地址

allprojects { repositories { google() jcenter() maven {url 'http://developer.huawei.com/repo/'} } }

在buildscript->repositories里面配置HMS SDK的maven倉地址

buildscript { repositories { google() jcenter() maven {url 'http://developer.huawei.com/repo/'} } }

添加編譯依賴

打開應用級的build.gradle文件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
集成SDK

dependencies{ implementation 'com.huawei.hms:scan:1.1.3.301' }

指定權限和特性

<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" />

由于使用集成簡單的defaultview,所以在AndroidManifest.xml清單文件中對掃碼頁面進行聲明

<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />

掃碼購物代碼開發關鍵步驟


主要有兩個功能,一個是添加產品,一個是查詢產品,通過掃碼+拍照綁定一組產品,保存后即可通過掃描

動態權限申請


private static final int PERMISSION_REQUESTS = 1; @Override public void onCreate(Bundle savedInstanceState) { // Checking camera permission if (!allPermissionsGranted()) {getRuntimePermissions();} }

啟動添加產品頁面


通過按鈕add product 觸發添加商品頁面

public void addProduct(View view) {Intent intent = new Intent(MainActivity.this, AddProductActivity.class);startActivityForResult(intent, REQUEST_ADD_PRODUCT);}

進行掃碼,錄入產品條形碼信息


調用defaultview進行掃碼

private void scanBarcode(int requestCode) {HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();ScanUtil.startScan(this, requestCode, options);}

回調函數中保存掃碼的結果


@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null) {return;}if ((requestCode == this.REQUEST_CODE_SCAN_ALL)&& (resultCode == Activity.RESULT_OK)) {HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);if (obj != null && obj.getOriginalValue() != null) {this.barcode = obj.getOriginalValue();}} else if ((requestCode == this.REQUEST_TAKE_PHOTO)&& (resultCode == Activity.RESULT_OK)) {……}}

掃碼查詢商品


掃碼查詢的方法也類似,直接在主頁面進行即可,在回調函數中對結果進行展示

public void queryProduct(View view) {HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();ScanUtil.startScan(this, REQUEST_QUERY_PRODUCT, options); }@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null) {return;}if ((requestCode == this.REQUEST_ADD_PRODUCT) && (resultCode == Activity.RESULT_OK)) {barcodeToProduct.put(data.getStringExtra(Constant.BARCODE_VALUE), data.getStringExtra(Constant.IMAGE_PATH_VALUE));} else if ((requestCode == this.REQUEST_QUERY_PRODUCT) && (resultCode == Activity.RESULT_OK)) {HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);String path = "";if (obj != null && obj.getOriginalValue() != null) {path = barcodeToProduct.get(obj.getOriginalValue());}if (path != null && !path.equals("")) {loadCameraImage(path);showPictures();}}}

Demo效果


首先使用demo中的add product,錄入商品的二維碼信息,并拍照記錄,之后使用query product ,掃面食品二維碼,如果該商品已經被錄入系統,就會返回對應商品信息。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

總結

以上是生活随笔為你收集整理的集成HMS Scan Kit扫码SDK,轻松实现手机扫码选购的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。