Implementar el escáner de código de barras en android

Estoy haciendo una aplicación en android que lea el escáner de código de barras.

¿Hay alguna forma de implementar el escáner de código de barras?

La aplicación debe abrir la cámara y tomar una imagen de BarCode.

Después de escanear me da el código que enviaré a mi servicio para buscar en mi base de datos.

¿Cómo puedo conseguir esto? Por favor, guíame amigos.

ACTUALIZADO:

Tengo este archivo IntentIntegrator.java para integrar.

¿Cómo puedo usar este APi?

Prueba Zxing

ZXing es una biblioteca de procesamiento de imágenes de códigos de barras 1D / 2D de código abierto y multi-formato implementada en Java. Nuestro enfoque es utilizar la cámara incorporada en los teléfonos móviles para fotografiar y decodificar códigos de barras en el dispositivo, sin comunicarse con un servidor.

Actualización 2016

La recomendación actual es utilizar la API de códigos de barras de Android , que funciona localmente (sin conexión), sin necesidad de un viaje en ida y vuelta de servidor. La API forma parte de la API Mobile Vision, publicada con Google Play Services 7.8 en agosto de 2015.

La API de código de barras detecta los códigos de barras en tiempo real, en el dispositivo, en cualquier orientación. También puede detectar múltiples códigos de barras a la vez.

Lee los siguientes formatos de código de barras:

  • Códigos de barras 1D: EAN-13, EAN-8, UPC-A, UPC-E, Code-39, Code-93, Code-128, ITF, Codabar
  • Códigos de barras 2D: Código QR, Data Matrix, PDF-417, AZTEC

Analiza automáticamente los códigos QR, Data Matrix, PDF-417 y valores aztecas, para los siguientes formatos compatibles:

  • URL
  • Información de contacto (VCARD, etc.)
  • Evento del calendario
  • Email
  • Teléfono
  • SMS
  • ISBN
  • Wifi
  • Geo-ubicación (latitud y longitud)
  • Licencia de conducir AAMVA / ID

Por favor, vaya a través de la respuesta publicada en el siguiente enlace: android: Cómo utilizar zxing basado qr código con escáner incorporado

Si desea incluir el código y no utilizar el IntegratorIntent que la biblioteca Zxing recomienda que pueda utilizar algunos de estos puertos

http://code.google.com/p/android-zxinglib/

http://code.google.com/p/android-quick-response-code/

Yo uso el primero y funciona perfecto!

Recomiendo encarecidamente el uso de esta biblioteca: https://github.com/dm77/barcodescanner

Se quita todos los problemas de construcción loco que vas a ejecutar en tratar de integrar Xzing o Zbar directamente. Utiliza esas bibliotecas bajo las portadas, pero las envuelve en una API muy simple de usar.

Utilice la biblioteca zxing . Código y ejemplos se pueden encontrar en ese sitio.

ZXing es una biblioteca de procesamiento de imágenes de códigos de barras 1D / 2D de código abierto y multi-formato implementada en Java. Nuestro enfoque es utilizar la cámara incorporada en los teléfonos móviles para fotografiar y decodificar códigos de barras en el dispositivo, sin comunicarse con un servidor.

 compile 'me.dm7.barcodescanner:zxing:1.8.4' import android.Manifest; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.util.Log; import android.view.View; import android.widget.LinearLayout; import com.google.zxing.Result; import org.json.JSONException; import org.json.JSONObject; import java.net.NetworkInterface; import java.util.Collections; import java.util.HashMap; import java.util.List; import me.dm7.barcodescanner.zxing.ZXingScannerView; public class MainActivity extends Activity implements ZXingScannerView.ResultHandler { private ZXingScannerView mScannerView; String locationAddress; private Dialog mDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 

// TODAS LAS PERMISAS MARSHMALLOW

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA); if (permissionCheck == PackageManager.PERMISSION_GRANTED) { Log.e("permission", "granted"); // callLocation(); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1); } } else { Log.e("MainActivity", "Lower Than MarshMallow"); } } public void onClick(View v) { mScannerView = new ZXingScannerView(this); setContentView(mScannerView); mScannerView.setResultHandler(this); mScannerView.startCamera(); Log.w("MainActivity", "onClick"); } @Override protected void onPause() { super.onPause(); if (mScannerView != null) { mScannerView.stopCamera(); Intent i=new Intent(MainActivity.this,MainActivity.class); startActivity(i); } Log.w("MainActivity", "onPause"); } @Override public void handleResult(Result result) { // Do anything with result here :D Log.w("MainActivity", "handleResult" + result.getText()); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Scan result"); builder.setMessage(result.getText()); AlertDialog alertDialog = builder.create(); alertDialog.show(); if (CommonMethod.isNetworkAvailable(MainActivity.this)) { send(result.getText()); } //Resume scanning //mScannerView.resumeCameraPreview(this); } } @Override protected void onResume() { super.onResume(); Log.e("Keshav", "MainActivity onResume called "); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA); if (permissionCheck == PackageManager.PERMISSION_GRANTED) { Log.e("permission", "granted"); // callLocation(); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1); } } else { Log.e("MainActivity on Resume ", "Lower Than MarshMallow"); } } } 

Buscando un zxing alternativo en internet, encontré este zbar . La verdad que sabía para iOS pero no sabía que él también era para Android.

La verdad es la peor zxing, va muy muy lenta y carga la aplicación con muchos,

Zbar , es un. Jar, copia en libs y voila, importa a otros proyectos … muy bien

También estaba tratando de hacer lo mismo que durante R&D he encontrado muchos de la biblioteca para escanear QR code y QR code Bar Code algunos se dan a continuación:

1- QRGenerator

2- QRParserLib

3- QRGen

4- qreader

5- QRCodeReaderView

6- barcodescanner

7- android-quick-response-code

8- MaterialBarcodeScanner

Así que usted puede utilizar cualquiera. Disfruta tu tiempo de código

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.