Implementando a funcionalidade de leitura de código de barras com HMS Core Scan SDK

informação geral



Em nosso último artigo, cobrimos como integrar rapidamente o HMS Core Scan SDK e comparamos esse SDK a outras ferramentas de leitura de código de barras de código aberto. Se você ainda não leu este artigo, pode encontrá-lo aqui .



Lemos códigos de barras todos os dias para pagar as compras, assinar contas de mídia social e receber informações sobre produtos. Hoje quero mostrar a você como implementar a funcionalidade de leitura de código de barras em seu aplicativo de compras.



Cenário



Com esse recurso, os usuários podem escanear um código de barras para obter informações do produto e um link para fazer uma compra.







Diagrama de ação







Treinamento



Abra o arquivo build.gradle na pasta gradle







Acesse allprojects> repositories e configure o endereço do repositório Maven para o HMS Core SDK.



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


Acesse buildscript> repositories e configure o endereço do repositório Maven para o HMS Core SDK.



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


Adicionar dependências



Abra o arquivo build.gradle na pasta do aplicativo .







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


Como a integração do SDK usa o modo de exibição padrão, especifique o direito de usar a tela de digitalização no arquivo AndroidManifest.xml na pasta do aplicativo.



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


Implementação



Duas funções estão disponíveis para implementação: adicionar um produto e pesquisar um produto. Você pode vincular um produto digitalizando um código de barras e tirando uma foto. Os usuários podem então pesquisar esse produto lendo o código de barras.



Envie uma solicitação de direitos dinâmicos



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


Abra a tela de adicionar produto



Clique em Adicionar produto para abrir uma tela onde você pode adicionar um produto.



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


Digitalize o código de barras para registrar as informações do produto



Digitalize o código de barras usando a exibição padrão do kit de digitalização HUAWEI.



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


Salve o resultado da verificação em uma função de retorno de chamada



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


Digitalize o código de barras para encontrar um produto



Clique em Consultar Produto e abra a tela de localização do produto. Exiba o resultado com uma função de retorno de chamada.



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


Tente você mesmo!



Clique em Adicionar produto . Na tela exibida, faça a leitura do código de barras do produto e tire uma foto do produto. Clique em Consultar produto e digitalize o código de barras do produto. Uma vez que o produto foi cadastrado no sistema, serão devolvidas informações sobre o mesmo.





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



Novos exemplos



Compartilharemos com você exemplos de outros recursos incríveis disponíveis no Kit de digitalização HUAWEI. Acompanhe as novidades!



All Articles