Implementación de la funcionalidad de escaneo de códigos de barras con HMS Core Scan SDK

Información general



En nuestro último artículo, cubrimos cómo integrar rápidamente el HMS Core Scan SDK y comparamos este SDK con otras herramientas de escaneo de códigos de barras de código abierto. Si aún no ha leído este artículo, puede encontrarlo aquí .



Escaneamos códigos de barras todos los días para pagar compras, suscribirnos a cuentas de redes sociales y recibir información de productos. Hoy quiero mostrarte cómo implementar la funcionalidad de escaneo de códigos de barras en tu aplicación de compras.



Guión



Con esta función, los usuarios pueden escanear un código de barras para obtener información del producto y un enlace para realizar una compra.







Diagrama de acción







Formación



Abra el archivo build.gradle en la carpeta gradle







Vaya a allprojects> repositories y configure la dirección del repositorio de Maven para el HMS Core SDK.



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


Vaya a buildscript> repositorios y configure la dirección del repositorio de Maven para el HMS Core SDK.



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


Agregar dependencias



Abra el archivo build.gradle en la carpeta de la aplicación .







Integre 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" />


Dado que la integración de SDK usa el modo de visualización predeterminado, especifique el derecho a usar la pantalla de escaneo en el archivo AndroidManifest.xml en la carpeta de la aplicación.



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


Implementación



Hay dos funciones disponibles para la implementación: agregar un producto y buscar un producto. Puede vincular un producto escaneando un código de barras y tomando una foto. Los usuarios pueden buscar ese producto escaneando el código de barras.



Envíe una solicitud para una solicitud de derechos dinámicos



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


Abra la pantalla de agregar producto



Haga clic en Agregar producto para abrir una pantalla donde puede agregar un producto.



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


Escanee el código de barras para registrar la información del producto



Escanee el código de barras con la Vista predeterminada del kit de escaneo HUAWEI.



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


Guarde el resultado del escaneo en una función de devolución de llamada



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


Escanee el código de barras para encontrar un producto



Haga clic en Consultar producto y abra la pantalla donde puede encontrar el producto. Muestra el resultado con una función de devolución de llamada.



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


¡Inténtalo tú mismo!



Haga clic en Agregar producto . En la pantalla que aparece, escanee el código de barras del producto y tome una foto del producto. Haga clic en Consultar producto y escanee el código de barras del producto. Dado que el producto ha sido registrado en el sistema, se devolverá información sobre el mismo.





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



Nuevos ejemplos



Compartiremos contigo ejemplos de otras funciones increíbles disponibles en el kit de escaneo de HUAWEI. ¡Sigue las novedades!



All Articles