Android, Как читать QR-код в моем приложении?

В моем приложении мне нужно прочитать Qr-код. Я искал сеть и обнаружил коды Zing, однако у многих разработчиков была проблема с ее использованием, и кажется, что это глючит!

Если я предполагаю, что у моих клиентов есть qr-ридер, установленный на их устройстве, как я могу использовать эти приложения и вызывать их с помощью неявных намерений?

Если у пользователя нет чтения qr, что произойдет с приложением? Если он сбой, могу ли я попросить пользователя загрузить, например, QrDroid, и после этого использовать его?

Solutions Collecting From Web of "Android, Как читать QR-код в моем приложении?"

try { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes startActivityForResult(intent, 0); } catch (Exception e) { Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android"); Intent marketIntent = new Intent(Intent.ACTION_VIEW,marketUri); startActivity(marketIntent); } 

И в onActivityResult():

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = data.getStringExtra("SCAN_RESULT"); } if(resultCode == RESULT_CANCELED){ //handle cancel } } } 

Если у пользователя нет чтения qr, что произойдет с приложением? Если он сбой, могу ли я попросить пользователя загрузить, например, QrDroid, и после этого использовать его?

Интересно, что Google теперь внедряет Mobile Vision API , они интегрированы в игровые сервисы.

В файле Gradle просто добавьте:

 compile 'com.google.android.gms:play-services-vision:9.6.1' 

Из этого учебника QR-кода .

Я создал простой пример учебника. Вы можете прочитать это и использовать в своем приложении.

http://ribinsandroidhelper.blogspot.in/2013/03/qr-code-reading-on-your-application.html

С помощью этой ссылки вы можете загрузить проект библиотеки qrcode и импортировать в свое рабочее пространство и добавить библиотеку в свой проект

И скопируйте этот код в свою деятельность

  Intent intent = new Intent("com.google.zxing.client.android.SCAN"); startActivityForResult(intent, 0); 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"); Toast.makeText(this, contents,Toast.LENGTH_LONG).show(); // Handle successful scan } else if (resultCode == RESULT_CANCELED) { //Handle cancel } } } 

Zxing – отличная библиотека для выполнения сканирования и генерации кода Qr. Следующая реализация использует библиотеку Zxing для сканирования изображения QR-кода. Не забудьте добавить следующую зависимость в градиенте

Compile 'me.dm7.barcodescanner: zxing: 1.9'

 public class QrCodeScanner extends AppCompatActivity implements ZXingScannerView.ResultHandler { private ZXingScannerView mScannerView; @Override public void onCreate(Bundle state) { super.onCreate(state); // Programmatically initialize the scanner view mScannerView = new ZXingScannerView(this); // Set the scanner view as the content view setContentView(mScannerView); } @Override public void onResume() { super.onResume(); // Register ourselves as a handler for scan results. mScannerView.setResultHandler(this); // Start camera on resume mScannerView.startCamera(); } @Override public void onPause() { super.onPause(); // Stop camera on pause mScannerView.stopCamera(); } @Override public void handleResult(Result rawResult) { // Do something with the result here // Prints scan results Logger.verbose("result", rawResult.getText()); // Prints the scan format (qrcode, pdf417 etc.) Logger.verbose("result", rawResult.getBarcodeFormat().toString()); //If you would like to resume scanning, call this method below: //mScannerView.resumeCameraPreview(this); Intent intent = new Intent(); intent.putExtra(AppConstants.KEY_QR_CODE, rawResult.getText()); setResult(RESULT_OK, intent); finish(); } } 

Используйте QR-библиотеку, такую ​​как ZXing … У меня был очень хороший опыт работы с ней, QrDroid намного сложнее. Если вы должны полагаться на внешнего читателя, полагайтесь на стандартный, такой как Google Goggles!