Implémentation de la fonctionnalité de numérisation de codes-barres à l'aide du SDK HMS Core Scan

informations générales



Dans notre dernier article, nous avons expliqué comment intégrer rapidement le SDK HMS Core Scan et comparé ce SDK à d'autres outils de numérisation de codes à barres open source. Si vous n'avez pas encore lu cet article, vous pouvez le trouver ici .



Nous scannons les codes-barres tous les jours pour payer les achats, nous abonner à des comptes de réseaux sociaux et recevoir des informations sur les produits. Aujourd'hui, je souhaite vous montrer comment implémenter la fonctionnalité de lecture de codes-barres dans votre application d'achat.



Scénario



Avec cette fonctionnalité, les utilisateurs peuvent scanner un code-barres pour obtenir des informations sur le produit et un lien pour effectuer un achat.







Diagramme d'action







Entraînement



Ouvrez le fichier build.gradle dans le dossier gradle







Accédez à tous les projets> référentiels et configurez l'adresse du référentiel Maven pour le SDK HMS Core.



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


Accédez à buildscript> référentiels et configurez l'adresse du référentiel Maven pour le SDK HMS Core.



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


Ajouter des dépendances



Ouvrez le fichier build.gradle dans le dossier de l' application .







Intégrez le SDK HMS Core.



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


Étant donné que l'intégration du SDK utilise le mode d'affichage par défaut, spécifiez le droit d'utiliser l'écran d'analyse dans le fichier AndroidManifest.xml dans le dossier de l'application.



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


la mise en oeuvre



Deux fonctions sont disponibles pour l'implémentation: l'ajout d'un produit et la recherche d'un produit. Vous pouvez lier un produit en scannant un code-barres et en prenant une photo. Les utilisateurs peuvent ensuite rechercher ce produit en scannant le code-barres.



Soumettre une demande de demande de droits dynamiques



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


Ouvrez l'écran d'ajout de produit



Cliquez sur Ajouter un produit pour ouvrir un écran dans lequel vous pouvez ajouter un produit.



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


Scanner le code-barres pour enregistrer les informations sur le produit



Scannez le code-barres à l'aide de la vue par défaut du HUAWEI Scan Kit.



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


Enregistrer le résultat de l'analyse dans une fonction de rappel



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


Scannez le code-barres pour trouver un produit



Cliquez sur Query Product et ouvrez l'écran où vous pouvez trouver le produit. Affichez le résultat à l'aide d'une fonction de rappel.



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


Essayez-le vous-même!



Cliquez sur Ajouter un produit . Sur l'écran qui apparaît, scannez le code-barres du produit et prenez une photo du produit. Cliquez sur Query Product et scannez le code-barres du produit. Puisque le produit a été enregistré dans le système, les informations le concernant seront renvoyées.





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



Nouveaux exemples



Nous partagerons avec vous des exemples d'autres fonctionnalités étonnantes disponibles dans le kit de numérisation HUAWEI. Suivez l'actualité!



All Articles