Menerapkan fungsionalitas pemindaian kode batang dengan HMS Core Scan SDK

informasi Umum



Dalam artikel terakhir kami, kami membahas cara mengintegrasikan HMS Core Scan SDK dengan cepat dan membandingkan SDK ini dengan alat pemindaian kode batang sumber terbuka lainnya. Jika Anda belum membaca artikel ini, Anda dapat menemukannya di sini .



Kami memindai kode batang setiap hari untuk membayar pembelian, berlangganan akun media sosial, dan menerima informasi produk. Hari ini saya ingin menunjukkan kepada Anda bagaimana menerapkan fungsionalitas pemindaian kode batang di aplikasi belanja Anda.



Skenario



Dengan fitur ini, pengguna dapat memindai kode batang untuk mendapatkan informasi produk dan tautan untuk melakukan pembelian.







Diagram aksi







Latihan



Buka file build.gradle di folder gradle







Buka allprojects> repositories dan konfigurasikan alamat repositori Maven untuk HMS Core SDK.



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


Buka buildscript> repositories dan konfigurasikan alamat repositori Maven untuk HMS Core SDK.



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


Tambahkan dependensi



Buka file build.gradle di folder aplikasi .







Integrasikan HMS Core SDK.



dependencies{  
    implementation 'com.huawei.hms:scan:1.1.3.301'
}
Assign permissions and specify features.
<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" />


Karena integrasi SDK menggunakan mode Tampilan default, tentukan hak untuk menggunakan layar pindai di file AndroidManifest.xml di folder aplikasi.



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


Penerapan



Dua fungsi tersedia untuk implementasi: menambahkan produk dan mencari produk. Anda dapat menghubungkan produk dengan memindai kode batang dan mengambil foto. Pengguna kemudian dapat mencari produk ini dengan memindai kode batang.



Kirimkan permintaan untuk permintaan hak dinamis



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


Buka layar tambah produk



Klik Tambahkan Produk untuk membuka layar tempat Anda dapat menambahkan produk.



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


Pindai kode batang untuk mencatat informasi produk



Pindai kode batang menggunakan Tampilan Default HUAWEI Scan Kit.



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


Simpan hasil pemindaian dalam fungsi panggilan balik



@Override
    public 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)) {
            ……
        }
}


Pindai kode batang untuk menemukan produk



Klik Produk Kueri dan buka layar tempat Anda dapat menemukan produk. Tampilkan hasilnya dengan fungsi panggilan balik.



public void queryProduct(View view) {
        HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();
        ScanUtil.startScan(this, REQUEST_QUERY_PRODUCT, options);
}

@Override
    public 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();
            }
        }
    }


Cobalah sendiri!



Klik Tambahkan Produk . Pada layar yang muncul, pindai kode batang produk dan ambil foto produk. Klik Query Product dan pindai kode batang produk. Karena produk telah terdaftar di sistem, informasi tentang itu akan dikembalikan.





github.com/HMS-Core/hms-scan-demo/tree/master/Scan-Shopping



Contoh baru



Kami akan membagikan kepada Anda contoh fitur luar biasa lainnya yang tersedia di HUAWEI Scan Kit. Ikuti beritanya!



All Articles