Você está precisando desenvolver um aplicativo que faça a leitura de um código de barras utilizando a câmera do celular ?
Provavelmente você está pensando em desenvolver algo com a câmera, e pegar alguma biblioteca que faça o decode do código de barras. Sim, isto é possível.
Mas estamos falando do Android, e um dos principais recursos da plataforma se trata de chamar outra aplicação já instalada para fazer determinada tarefa para você.
Neste caso existe o projeto
zXing que possui um aplicativo Android que pode ser instalado no seu celular que já faz todo este trabalho, basta fazer o download e instalar o
BarcodeScanner.apk no seu celular.
** Olá leitores, se você conseguiu ler a imagem do lado, a promoção já acabou e o vencendor já ganhou o livro **
E agora como fazemos para usufruir deste aplicativo?
Simples, imagina que você possui um botão na tela.
ImageButton b = (ImageButton) findViewById(R.id.btScan);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, 0);
}
});
Se você é um desenvolvedor Android já entendeu a "mensagem". No Android temos o recurso de
expressar as nossas intenções utilizando a classe
Intent, de forma que a nossa intenção e desejo é informada ao sistema operacional do Android, e ele se encarrega de entregar esta mensagem a todas as aplicações instaladas no celular.
Neste caso como a aplicação de leitura de código de barras está instalada, ela responderá a sua mensagem "
com.google.zxing.client.android.SCAN" e será executada, e passa a interagir com o usuário.
O usuário pode utilizar esta aplicação normalmente, e quando terminar de ler o código de barras, sua aplicação (Activity) será chamada novamente, e o método
onActivityResult é utilizado para ler o resultado, que neste caso é o código de barras e outras informações em formato texto.
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
É isso aí. Muito simples não é? Bem mais fácil do que criar uma aplicação do zero, ou até mesmo utilizar uma biblioteca (API) para isso. Desta forma você deixa o trabalho do código de barras para uma aplicação especializada nesta tarefa.
No Android, a "Integração de Aplicações" é levado mesmo a sério. Este é um simples exemplo.. se você desenvolve para Android já deve saber disso.