Quantcast
Channel: NumeroReal » java
Viewing all articles
Browse latest Browse all 12

Android, Bar Code

$
0
0

Criando um leitor de código de Barras (Bar Code)

Bom pessoal vamos apresentar um leitor de código de Barras (Bar Code Reader), abaixo iniciaremos com os passos para através do Acesso de sua IDE, no momento estamos utilizando o Eclipse, então caso você esteja utilizando uma outra IDE procure pelas opções de acordo com a organização da mesma, ou envia suas perguntas para o nosso site que realizaremos os testes em sua IDE.

Então crie um novo projeto  para Android, em seguida informe o nome do projeto, o nome do pacote. Em seguida crie um ACTIVITY em branco para você, conforme você já está acostumado a fazer para um novo projeto Android no Eclipse.

Agora abra o seu arquivo de Layout, com o “deafult settings”,  Eclipse inicie seu Layout coforme descrito abaixo.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<Button android:id="@+id/scan_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="@string/scan" />

</RelativeLayout>

Após o botão, inclua 2 Text View conforme abaixo.

<TextView android:id="@+id/scan_format"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textIsSelectable="true"
          android:layout_centerHorizontal="true"
          android:layout_below="@id/scan_button" />

<TextView android:id="@+id/scan_content"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textIsSelectable="true"
          android:layout_centerHorizontal="true"
          android:layout_below="@id/scan_format" />

Inclua o botão com o seu texto usando  “res/values/strings” em seu arquivo XML de recursos.

<string name="scan">Procurar</string>

Inclua o ZXing

ZXing é uma biblioteca de código aberto que fornece acesso à testado e funcional de varredura de código de barras no Android. Muitos usuários já terão o aplicativo instalado em seus dispositivos, assim você pode simplesmente lançar as intenções de digitalização e recuperar os resultados. Neste tutorial, vamos usar o método de digitalização via Intent para tornar a digitalização mais fácil. Este método envolve a importação de um par de classes em seu aplicativo e permite ZXing cuidar de casos em que o usuário não tem o scanner instalado. Se o usuário não tiver o scanner de código de barras instalado, que será solicitado a baixá-lo.

Caso voce ainda não tenha em seu Eclipse a biblioteca ,  voce pode adicionar um novo pacote para o seu projeto, clicando com o botão direito na pasta “src” e escolha “Novo” e depois em “Package” e digitando “com.google.zxing.integration.android” como o nome do pacote.

Package

Voce agora deve incluir o ZXing em seu Activity.

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

Vá em frente e adicione as outras declarações de importação que usaremos neste exemplo. Tenha em mente que o Eclipse pode já ter adicionado algum para você.

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

 Sinta-se livre para dar uma olhada no conteúdo das duas classes ZXing. É bastante simples, mas os detalhes do processamento de código de barras são realizadas em outras partes da biblioteca.

Realizando a Leitura

Observe abaixo o método onCreate no Activity, que será executado.

protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
}

Abaixo a declaração do botão para Leitura (Scan) e 2 Text Views que foram criadas no Layout do App.

private Button scanBtn;
private TextView formatTxt, contentTxt;

No método onCreate, devemos incluir , o instanciamento destas variáveis através do seu ID, oriundos da especificação realizado em seus recursos do arquivo XML, assim como já fazemos em outros Apps de formulários.

scanBtn = (Button)findViewById(R.id.scan_button);
formatTxt = (TextView)findViewById(R.id.scan_format);
contentTxt = (TextView)findViewById(R.id.scan_content);

Após , vamos adicionar o Listener para o botão que criamos.

scanBtn.setOnClickListener(this);

Não esqueça de extender na declaração da classe MainActivity para implementação de OnClickListener.

public class MainActivity extends Activity implements OnClickListener

Agora vamos implementar o onClick em sua Activity.

public void onClick(View v){
       //resposta aos seus cliques
}

Verifique se o botão foi pressionado.

if(v.getId()==R.id.scan_button){
   //lendo (SCAN)
}

Dentro do bloco condicional apresentado insira o Intent.

IntentIntegrator scanIntegrator = new IntentIntegrator(this);

Agora vamos chamar o Intent para iniciar a leitura.

scanIntegrator.initiateScan();

Neste ponto, você será iniciado se ele estiver instalado no dispositivo do usuário. Se não, eles vão ser solicitado a baixá-lo. Os resultados do exame serão devolvidos à principal atividade onde a digitalização foi iniciada, de modo que vai ser capaz de recuperá-la no método onActivityResult.

Quando você chamar o método initiateScan, você pode optar por passar uma coleção de tipos de código de barras que pretende digitalizar. Por padrão, o método irá procurar todos os tipos suportados. Estes incluem UPC-A, UPC-E, EAN-8, EAN-13, QR Code, RSS-14, RSS Expandido, Data Matrix, Aztec, PDF 417, Codabar, ITF, códigos 39, 93 e 128 A ZXing biblioteca também inclui opções de digitalização de código de barras que não estamos indo para cobrir neste tutorial.

Recuperando o Resultado da Leitura

Bom vamos ver como ficou nosso método de leitura do código de barras.

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
       //Recuperando o resultado
       IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
       if (scanningResult != null) {
          //tem resultado ?
          String scanContent = scanningResult.getContents();
          String scanFormat  = scanningResult.getFormatName();
          formatTxt.setText("FORMATO: " + scanFormat);
          contentTxt.setText("CONTEUDO: " + scanContent);
       } else { 
          Toast toast = Toast.makeText(getApplicationContext(), "Sem dados!", Toast.LENGTH_SHORT);
          toast.show(); 
       }
 }

Bom pessoal, Neste artigo nós funcionamos através do processo de facilitar a digitalização de códigos de barras dentro de apps Android usando a biblioteca ZXing. Em seus próprios aplicativos, você pode querer realizar processamento adicional sobre os resultados da verificação recuperados, tais como URLs de carga ou olhando os dados em uma fonte de dados de terceiros.
Boa sorte com seu App.

The post Android, Bar Code appeared first on NumeroReal.


Viewing all articles
Browse latest Browse all 12