Integrando o Leitor de QRCode ZXing no Android

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes! Você receberá um email de confirmação. Somente depois de confirma-lo é que eu poderei lhe enviar os conteúdos semanais exclusivos. Os artigos em PDF são entregues somente para os inscritos na lista.

Email inválido.
Blog /Android /Integrando o Leitor de QRCode ZXing no Android

Integrando o Leitor de QRCode ZXing no Android

Vinícius Thiengo
(28384) (40)
Go-ahead
"O método consciente de tentativa e erro é mais bem-sucedido que o planejamento de um gênio isolado."
Peter Skillman
Prototipagem Android
Capa do curso Prototipagem Profissional de Aplicativos
TítuloAndroid: Prototipagem Profissional de Aplicativos
CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim
Acessar Curso
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Lendo
TítuloCraftsmanship Limpo: Disciplinas, Padrões e ética
CategoriaDesenvolvimento Web
Autor(es)Robert C. Martin
EditoraAlta Books
Edição
Ano2023
Páginas416
Conteúdo Exclusivo
Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba gratuitamente conteúdos Android sem precedentes!
Email inválido

Tudo bem?

Na vídeo aula acima nós vamos destrinchar a antiga, mas ainda popular, biblioteca ZXing (Zebra Crossing se pronucia "Zibra Cróssin").

Biblioteca comumente utilizada em aplicativos Android que necessitam ter, internamente, a funcionalidade de leitura de códigos de barra, principalmente leitura do código QRCode.

Leitura de QRCode com ZXing no aplicativo Android de exemplo

Antes de prosseguir...

... ao menos que você esteja utilizando a linguagem Java no desenvolvimento do aplicativo e não queira fazer uma mínima linha de código em Kotlin.

Ao menos que isso seja verdade, então eu indico que você pare por aqui com este artigo e vídeo aula e prossiga para o seguinte tutorial aqui do Blog:

Isso, pois este tutorial tem uma versão de API de leitura de códigos 1D e 2D mais completa, mais simples e muito melhor apresentada do que aqui. Porém tudo em Kotlin.

De qualquer forma, se mesmo assim você quiser prosseguir com está aula, quero ressaltar que como acontece com características de mapas e de comunicação remota no Android.

Como acontece com estas, a necessidade da funcionalidade de leitura de códigos de barra em projetos de aplicativos é muito mais comum do que você imagina.

Sendo assim, mesmo que você tenha entrado aqui por acaso, vale investir um pouco do seu tempo para aprender mais sobre a biblioteca ZXing.

Essa habilidade, em algum momento de sua jornada como desenvolvedor de aplicativos Android, será solicitada.

Enfim... voltando ao assunto ZXing...

Essa é uma das APIs de leitura de códigos mais completas em mercado, digo, APIs Open Source. Com ela seu aplicativo conseguirá ler:

  • Códigos 1D:
    • UPC-A;
    • UPC-E;
    • EAN-8;
    • EAN-13;
    • Code 39;
    • Code 93;
    • Code 128;
    • Codabar;
    • ITF;
    • RSS-14;
    • RSS-Expanded.
  • Códigos 2D:
    • QR Code;
    • Data Matrix;
    • Aztec;
    • PDF 417.

Além de ter a API trabalhando dentro de seu aplicativo, ou seja, não terá que depender de aplicativos auxiliares para leitura de códigos. Aplicativos que muito provavelmente não estarão instalados no aparelho do usuário.

Mas confesso que se fosse para a apresentação de rotas em mapa, por exemplo, eu fortemente recomendaria que o seu projeto acionasse o Google Maps app por meio de uma intenção do Google Maps.

Isso, pois somente vejo vantagem nesse comportamento. Tendo em mente que o Google Maps certamente estará instalado no aparelho do usuário e não haverá disparo de exceção.

Porém aplicativos para a leitura de códigos... não são todos (nem mesmo perto disso) os usuários que têm esse tipo de app instalado em seus aparelhos.

Sobre o projeto Android de exemplo na vídeo aula...

Você vai notar que para fazer o ZXing funcionar de maneira confiável no app serão necessárias algumas atualizações na própria API.

Principalmente atualizações na atividade CaptureActivity.

Fique muito atento quanto às permissões necessárias para o correto funcionamento de um projeto com a ZXing. Principalmente as permissões que desde o Android 6, vulgo Android Marshmallow, necessitam de solicitação em tempo de execução.

Então é isso!

Antes de finalizar, abaixo deixo alguns links de outros conteúdos do Blog que lhe colocarão em dia com o que há de atual no mundo Android:

E caso você tenha como meta aprender a criar aplicativos Android, ou evoluir nesta área, também com o conteúdo gratuito do Blog e canal, então não deixe de acessar a lista de estudos em:

Não esqueça de se inscrever 📫 na lista de e-mails do Blog para receber os conteúdos Android em primeira mão e também em formato PDF (esse formato é liberado somente para os inscritos na lista de e-mails).

Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades.

Surgindo dúvidas ou dicas, pode enviar abaixo na área de comentários que logo eu lhe retorno.

Obs. : o link para download do projeto apresentado na vídeo aula se encontra logo abaixo no artigo, mais precisamente na seção "Download".

Abraço.

Eclipse IDE vs Android Studio IDE

Apesar do conteúdo da vídeo aula acima estar utilizando o Eclipse IDE 😱, tudo que é apresentado, tanto a parte teórica quanto a parte prática, é ainda válido nos dias de hoje com o desenvolvimento Android utilizando o Android Studio 😁.

Ou seja, independente da linguagem oficial (Java, Kotlin, C ou C++), IDE ou framework que você esteja utilizando, o conteúdo acima é ainda de grande utilidade.

AndroidX

Apesar do conteúdo sobre APIs de leitura de códigos ainda estar atual e ser importante para qualquer nível de desenvolvedor Android.

Apesar disso eu também recomendo, assim que finalizado o projeto em sua própria instalação de IDE, que você o migre para o AndroidX.

Algo que pode ser feito com poucos cliques, como apresentado no tutorial a seguir: Migrar para o AndroidX.

Fontes

Documentação oficial do ZXing no GitHub

Página no Maven para download do cor.jar

Gerador gratuito de códigos para testes

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes!
Email inválido

Relacionado

Iniciando com Dropbox API no AndroidIniciando com Dropbox API no AndroidAndroid
Download e Upload com Dropbox API no AndroidDownload e Upload com Dropbox API no AndroidAndroid
ExpandableListView no Android, Entendendo e UtilizandoExpandableListView no Android, Entendendo e UtilizandoAndroid
DialogFragment no Android, Entendendo e UtilizandoDialogFragment no Android, Entendendo e UtilizandoAndroid

Compartilhar

Comentários Facebook

Comentários Blog (40)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
25/07/2019
olá thiengo,
utilizo essa lib na minha aplicação também.
Porem estou com um problema aqui. Preciso gerar um QRCode e apos gerar preciso imprimir o mesmo.
vamos ao problema.
o processo de gerar o QRCode fica muito lento isso acontece sempre que as informações que tem que ir no qrcode é grande. por exemplo com um 140caracteres.
tem como otimizar esta funcao de gerar o qrcode?
Responder
Vinícius Thiengo (0) (0)
16/08/2019
Renato, tudo bem?

Neste caso eu não recomendaria o processo de "otimização do algoritmo de geração de QRCode", pois está é uma API criada por terceiros e isso pode lhe trazer mais dor de cabeça do que solução.

Eu escolheria tentar outras APIs geradoras de QRCode, APIs como às disponíveis no link a seguir: https://android-arsenal.com/tag/81?sort=rating

A QRGen pode ser uma boa solução caso você ainda não tenha a utilizado: https://github.com/kenglxn/QRGen

Renato, dê uma olhada também no outro artigo que tenho aqui no Blog, mais completo, somente sobre QRCodes em aplicativos Android:

-> Leitor de Códigos no Android com Barcode Scanner API - ZXing: https://www.thiengo.com.br/leitor-de-codigos-no-android-com-barcode-scanner-api-zxing

Abraço.
Responder
Guilherme (1) (0)
13/03/2019
Olá, Boa tarde. Estou tentando fazer um leitor de qr que quando ler um texto especifico ele abra uma activity e se o código não for o meu, ele não abre nada e retorna um alert de erro. Tem como eu fazer isso ?
Responder
Vinícius Thiengo (0) (0)
08/04/2019
Guilherme, tudo bem?

Tem como sim fazer isso, mas aconselho que você utilize a API Barcode Scanner para trabalhar com leitor de QRCode.

Isso, pois ela contém o ZXing, porém de uma maneira bem mais simples de utilizar, com poucas chamadas de método.

-> Leitor de Códigos no Android com Barcode Scanner API - ZXing: https://www.thiengo.com.br/leitor-de-codigos-no-android-com-barcode-scanner-api-zxing

Abraço.
Responder
Antonio (2) (0)
05/06/2018
Boa noite Thiengo! Parabéns pelo conteúdo.  Gostaria de tirar uma dúvida, caso seja possível!  Estou desenvolvendo um aplicativo e gostaria que o leitor  de código de barras leia diferentes códigos e que o mesmo armazene em ediText diferentes! Consigo até capturar diferentes código, porém, toda vez que capturo um o outro campo limpa os dados. Desde de já grato!
Responder
Vinícius Thiengo (1) (0)
06/06/2018
Antonio, tudo bem?

O que você quer é preencher um EditText diferente para cada código lido, certo?

Se sim, essa funcionalidade está ligada a lógica de negócio que você desenvolverá para ser executada assim que algum código válido for retornado da leitura do ZXing.

Um possível roteiro é o seguinte:

-> Acesse, como variável de instância da atividade ou fragmento que contém o método de resposta do ZXing, o ViewRoot que conterá os EditTexts com os códigos lidos. Acesse esse ViewRoot com o método findViewById();

-> No método de resposta do ZXing, depois de verificado que o código lido é válido, adicione ao ViewRoot um novo EditText ao final dele, como a seguir:

...
EditText et = new EditText( this ); // ou getActivity() em caso de Fragment
et.setText( codigoLidoEmFormatoString );
viewRoot.addView( et );
...

Antonio, dessa forma sempre haverá um novo EditText para um novo código lido. Tente o roteiro acima.

Não deixe de ver o conteúdo do link a seguir onde mostro como melhor utilizar o ZXing em um projeto Android:

-> Leitor de Códigos no Android com Barcode Scanner API - ZXing: https://www.thiengo.com.br/leitor-de-codigos-no-android-com-barcode-scanner-api-zxing

Abraço.
Responder
Antonio (1) (0)
14/06/2018
Olá Thiengo,

Tudo bem com você?

Desde de já muito obrigado pela dica que você me passou no seu site.

Porém, ainda não conseguir aplicar ao meu projeto a dica que você me passou!

Os dois vídeos que você gravou no seu canal, pelo menos os que eu assistir que são relacionados ao Zxing estão diferentes do que estou construindo.

Estou anexando a minha Actvity Principal, e se for possível poderia me dizer no que estou errando e como seria a melhor saída para essa minha problemática.



Antemão, deixo aqui mais uma vez e o meu muito OBRIGADO!


Atenciosamente,


Antonio da Hora


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

public class Activity_Pai extends AppCompatActivity implements TextView.OnEditorActionListener  {

    private ZXingScannerView scannerView;
    private  ZXingScannerView scannerView2;

    EditText serialTablet;
    EditText serialImpressora;


    ImageButton btnTb;
    ImageButton btnTi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity__pai);

        //imagem button
        btnTb =  (ImageButton) findViewById(R.id.cod_tablet);
        btnTi =  (ImageButton) findViewById(R.id.cod_Impressora);


    }


    //Função onClick do ImageButton IMEI TABLET
    public void scanTablet (View view, ViewGroup viewRoot)
    {

        scannerView = new ZXingScannerView(this);
        scannerView.setResultHandler(new ZXingScannerResultHandler());

        setContentView(scannerView);
        scannerView.startCamera();

        EditText et = new EditText(this);

        et.setText(serialTablet.toString());

        viewRoot.addView(et);

    }

    //Funcção onClick do ImageButton IMEI impressora
    public void scanImpressora(View view)
    {

        scannerView2 = new ZXingScannerView(this);
        scannerView2.setResultHandler(new ZXingScannerResultHandler2());

        setContentView(scannerView2);
        scannerView2.startCamera();


        }


    @Override
    public void onPause()
    {
        super.onPause();
        scannerView.stopCamera();

    }


    class ZXingScannerResultHandler implements ZXingScannerView.ResultHandler {

        @Override
        public void handleResult(Result result) {

                String codigoImei = result.getText();

                Toast.makeText(Activity_Pai.this, codigoImei, Toast.LENGTH_SHORT).show();

                setContentView(R.layout.activity__pai);
                scannerView.stopCamera();

                //CAMPO SERIAL DO TABLET
                serialTablet = findViewById(R.id.imeTablet);

                serialTablet.setText(codigoImei);



        }
    }

    class ZXingScannerResultHandler2 implements ZXingScannerView.ResultHandler {

        @Override
        public void handleResult(Result result) {

                String serialImep = result.getText();

                Toast.makeText(Activity_Pai.this, serialImep, Toast.LENGTH_SHORT).show();

                setContentView(R.layout.activity__pai);
                scannerView.stopCamera();

                //CAMPO SERIAL DO Impressora
                serialImpressora = findViewById(R.id.imeiImpressora);

                serialImpressora.setText(serialImep);

        }
    }



}
Responder
Vinícius Thiengo (1) (0)
21/06/2018
Antonio, tudo bem aqui.

O que vi que pode ser mudado para atender ao que você tinha informado no primeiro comentário, é:

Colocar o código a seguir:

EditText et = new EditText( this );
et.setText( serialTablet.toString() );
viewRoot.addView( et );

No handleResult() de ZXingScannerResultHandler ao invés de no método scanTablet().

Assim, para cada novo código lido via scannerView, um novo EditText será adicionado em tela com o valor do código.

É possível ter o mesmo comportamento para scannerView2 / ZXingScannerResultHandler2.

Abraço.
Responder
Antonio (1) (0)
25/06/2018
Boa noite.

Tudo em paz com você ?

Segui o seu conselho, porém, há dois erros que sinceramente não estou conseguindo resolve-los.

Segue o erros.

///////////////////////////////////////////////////////////////////////////////////////////////////////////

class ZXingScannerResultHandler implements ZXingScannerView.ResultHandler
    {

        @Override
        public void handleResult(Result result)
        {

                String codigoImei = result.getText();

                Toast.makeText(Activity_Pai.this, codigoImei, Toast.LENGTH_SHORT).show();

                setContentView(R.layout.activity__pai);
                scannerView.stopCamera();

                //CAMPO SERIAL DO TABLET
                serialTablet = findViewById(R.id.imeTablet);

                 serialTablet.setText(codigoImei);

                 EditText et = new EditText(this);

//EditText (android.content.Context) in EditText cannot be applied  to                                                      //(com.app.antonio.atena.Activity_Pai.ZXingScannerResultHandler)

                  et.setText(serialTablet.toString());
                  viewRoot.addView(et); // Cannot resolve symbol 'viewRoot'

        }
    }

Quando altero o viewRoot, pelo scanView o erro desaperece, mas mesmo assim o editText permanece com o mesmo erro.

Quero agradecer mais uma vez pela sua atenção e ajuda.

Eternamente Grato!

Grande Abraço!

Att.
Responder
Vinícius Thiengo (0) (0)
31/07/2018
Antonio, tudo bem aqui.

O trecho de código "EditText et = new EditText(this);" realmente está errado, pois o "this" está representando uma instância de ZXingScannerResultHandler ao invés de uma instância de Context, como esperado no construtor de EditText.

Nem que seja pelo construtor de ZXingScannerResultHandler, passe o contexto da atividade como parâmetro para assim poder passa-lo como argumento em new EditText( context ).

Se ZXingScannerResultHandler estiver como classe interna da atividade de contexto, então basta fazer:

...
EditText et = new EditText( NomeDaActividade.this );
...

Dessa forma o projeto vai funcionar sem problemas.

Abraço.
Responder
Antonio (1) (0)
13/08/2018
Boa noite Thiengo, tudo bem contigo!

Irei aplicar a sua sugestão ao projeto.

Desde de já muito obrigado pela sua atenção e prestatividade!

Grande Abraço!
Responder
31/01/2018
Bom dia amigo
estou com uma duvida, tem como fazer um link em Qrcode abrir no navegador padrão, utilizando essa implementação? e como funcionaria isso? abraço.
Responder
Vinícius Thiengo (0) (0)
03/02/2018
Edian, tudo bem?

Tem como sim. Um possível roteiro é o seguinte: No onActivityResult() da classe CaptureActivity você pode colocar o código de abertura de browser.

-> Código da classe CaptureActivity: https://github.com/viniciusthiengo/test-zxing/blob/master/android_zxing/src/main/java/com/google/zxing/client/android/CaptureActivity.java

-> Código de abertura de página Web no browser padrão do device: https://stackoverflow.com/a/3004542/2578331

Abraço.
Responder
André (1) (0)
10/05/2017
Olá Thiengo, tenho acompanhado muito seu blog e videos no youtube. Desde já agradeço as ótimas dicas para quem está programando para android.
Eu estou migrando do Eclipse para o Android Studio e estou tendo certa dificuldade de me adaptar.
Cheguei a ver na internet como usar o ZXing no AS mas os videos que ví o pessoal só passa uma linha no gradle e não faz o procedimento similar o do seu projeto do Eclipse. Poderia dar uma dica sobre montar no AS do mesmo jeito que foi feito no Eclipse e também, se possivel,uma dica de como fazer deste modo somente mexendo no gradle?
Obrigado
Responder
Vinícius Thiengo (0) (0)
12/05/2017
André, tudo bem?

Realmente há maneiras mais simples de se configurar o ZXing no Android, digo, utilizando Gradle e o Android Studio.

Apesar de eu ter cessado o trabalho com essa API, há inúmeras libraries que facilitam a configuração dela em nosso projeto Android. Veja algumas no link a seguir: https://android-arsenal.com/search?q=zxing

Nas páginas das libraries do link acima há instruções de como configura-las no Gradle, incluindo a API Android mínima de uso.

André, se quiser um projeto mais atual, no Android Studio, utilizando o ZXing, veja a minha conversão com Davi Resio no link a seguir: https://www.youtube.com/watch?v=WCR_GaROfSA

Depois entre no GitHub desse projeto em: https://github.com/viniciusthiengo/test-zxing

Abraço.
Responder
Alexandre (0) (0)
28/04/2016
Tem como disponibilizar seu código pronto para download?
Responder
Vinícius Thiengo (0) (0)
28/04/2016
Fala Alexandre, blz?
O código está na sessão "Download" desse post, somente click para baixar. De qualquer forma esse post está um pouco antigo, utilize o ZXing de alguma das libraries desse link (https://android-arsenal.com/search?q=zxing ). Abraço
Responder
Carlos (0) (0)
27/04/2016
Olá, parabéns pelo material.
  Ao tentar efetuar a leitura de Código de Barra EAN 13 a rotina não lê o último nro.
  Será que tem algum outro controle que deve ser ajustado?

Obrigado.
Responder
Vinícius Thiengo (0) (0)
28/04/2016
Fala Carlos, blz?
Vou ficar lhe devendo essa, mas se seguiu esse post recomendo que utilize alguma das libraries desse link (https://android-arsenal.com/search?q=zxing ), pois elas são mais atuais e simples de utilizar. Abraço
Responder
17/12/2015
Olá Vinícius Thiengo, estou com algumas dúvidas sobre alguns métodos que a biblioteca dispõe, queria saber se tem algum doc ou pdf, falando mais sobre ela, pois já procurei e não consegui encontrar! Desde de já agradeço!
Responder
Vinícius Thiengo (0) (0)
18/12/2015
Fala Patrick, blz?
Tem o GitHub da lib (https://github.com/zxing/zxing )... de qualquer forma, dê uma olhada nessa implementações tb (https://android-arsenal.com/search?q=zxing ). Abraço
Responder
Carlos Andrade (1) (0)
10/08/2015
Thiengo, beleza!? Você tem alguma lib para manipular PDF no Android?
Responder
Vinícius Thiengo (0) (0)
11/08/2015
Fala Carlos Andrade, blz?
Ainda não tenho esse conteúdo, mas dê uma olhada nessas lbs: https://android-arsenal.com/search?q=pdf
Responder
Erick Costa (1) (0)
26/03/2015
Fale Thiengo, parabéns pelo tutorial.
Eu consigo fazer rodar no Android 2.3 numa boa?
Consegui importar para o Android Studio, rodou legal mas não tive compatibilidade com o Android 2.3
Responder
Vinícius Thiengo (0) (0)
26/03/2015
Fala Erick, blz?
Não cheguei a testar para aversão 2.3, mas se no LogCat saiu algo relacionado a ClassNotFound então não roda mesmo não e mt provavelmente não há a versão de suporte. Mas essa é uma versão que está cada vez mais com menos usuários (https://developer.android.com/about/dashboards/index.html ). Abraço
Responder
Matheus Pereira (1) (0)
09/03/2015
Olá Thiengo, sou leigo em programação e estou utilizando o Android Studio.. Não sei como criar o source folder no Anroid Studio. Poderia me dar uma dica?
Responder
Vinícius Thiengo (0) (0)
10/03/2015
Fala Matheus, blz?
Para ficar mais tranquilo de visualizar, faça o seguinte, na aba de projetos de seu AS, no topo tem um menu drop down, clique nele e selecione "Project" ao invés de Android, a visualização será mt similar a que temos quando no Eclipse. Então navegue em seu projeto até o folder /res/, nele clique com o botão direito do mouse  e vai em New > Directory. Agora é somente da o nome. Abraço
Responder
Vinícius Thiengo (0) (0)
10/03/2015
Se quiser criar para colocar o ZXing como no vídeo, faça o mesmo procedimento citado em meu primeiro comentário, porém depois de selecionar project, clique com o botão direito em cima do folder root de seu projeto e selecione New > Module. Com o ZXIngo no ANdroid studio, se não me engano vc pode utilizar o Gradle, veja essa discussão no stackoverflow (http://stackoverflow.com/questions/23575559/add-zxing-android-project-as-library-in-android-studio ). Abraço
Responder
Matheus (1) (0)
10/03/2015
Muito obrigado.. ajudou bastante!
Responder
Wemerson Vital (0) (0)
24/11/2014
Olá Thiengo, continue com este seu trabalho ele vem ajudando muito inclusive há min.

Eu não estou conseguindo fazer como que a activity que captura o QR Code fique de forma vertical, ela sempre fica com a câmera invertida,  queria saber como modificar isso
vlw , abraço!
Responder
Vinícius Thiengo (0) (0)
26/11/2014
Fala Wemerson, blz?
Entra na classe CaptureActivity e procure pela instancia de camera para aplicar o mesmo que a resposta do link a seguir ( http://stackoverflow.com/questions/10660598/android-camera-preview-orientation-in-portrait-mode ). Se mesmo assim não conseguir volte aqui que vou ver no projeto como resolver isso (deve ser detalhe simples)... abraço
Responder
Wemerson Vital (1) (0)
09/12/2014
Valeu Thiengo, ajudou bastante...
Abraço!
Responder
Denilson Alves (0) (0)
12/10/2014
Thiengo, boa noite tudo certo? Então eu consegui integrar as classes do zxing ao meu projeto, ele chama a tela de leitura tudo certinho, porém quando ele termina de ler o códigoQR ele não executa o método onactivityResult, ou seja ele só lê e a tela do leitor fica parada com o resultado, você saberia me dizer se tem solução?? Baixei o seu projeto e ele executa normalmente, pega o resultado e joga no TextView.. no meu ele não faz nada com o resultado só fica mostrando na tela. .. Se puder me ajudar eu agradeço desde já
Responder
Vinícius Thiengo (0) (0)
12/10/2014
Fala Denilson, blz?
Então, vc provavelmente esqueceu de realizar alguma alteração na Activity CaptureActivity que está no pacote do zxing, pois nessa parte que ele fica mostrando o código na tela, no vídeo eu faço com que a Activity seja fechada para então retornar o dados lido para o método onActivityResult. Verifique a CaptureActivity de meu projeto e então verifique a de seu projeto para que elas sejam as mesmas. Abraço
Responder
Denilson Alves Martins (1) (0)
12/10/2014
A preguiça é uma coisa muito chata, não tinha visto o vídeo até o fim .... :[ ... agora deu certo obrigado Thiengo.. vc é o cara mano..sucesso
Responder
paulohenriquess2014 (1) (0)
20/09/2014
muito bom cara valeu pelo seus videos, estou aprendendo muito.
Responder
Wiliam (1) (0)
17/09/2014
Muito interessante cara, seu blog ta muito bom! Obrigado por compartilhar todo esse conhecimento com a gente!
Responder
Vinícius Thiengo (0) (0)
18/09/2014
Vlw Wilian, abraço
Responder
Wiliam (0) (0)
19/09/2014
Opa vlw, Thiengo deixa só eu tirar uma duvida com vc! Eu estou desenvolvendo uma app que vai funcionar com um chat de grupo, tipo aqueles grupos do whatsapp onde vários usuários se conectam em uma sala, então pra fazer isso vc me recomendaria usar sockets ou existe uma forma melhor de se fazer? Desde já agradeço pela atenção, Abraços...
Responder
Vinícius Thiengo (1) (0)
19/09/2014
Fala Wilian, blz?
Então, eu faria uma jogada com o Volley, Google Cloud Message (GCM) e Service, ou seja, Volley para trabalhar as conexões necessárias com o servidor Web (é a lib recomendada pelo Google), o GCM para informar aos usuários que há novas mensagens e o Service para buscar essas novas mensagens tendo em vista a limitação no tamanho da mensagem enviada pelo GCM. Abraço
Responder