Сканер штрих-кода
Я новичок в android. Я пытаюсь разработать сканер штрих-кода, который работает следующим образом:
Возьмите изображение (штрих-кода) через камеру и сканируйте это изображение штрих-кода.
мой вопрос в том, как я могу это сделать?
Спасибо заранее
Вот мой код:
TextView result_text;
Button scan_btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
result_text = (TextView)findViewById(R.id.Result_tv);
scan_btn = (Button)findViewById(R.id.Barcode_Scan_Button);
scan_btn.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent scanIntent= new Intent("com.google.zxing.client.android.SCAN");
scanIntent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(scanIntent, 0);
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
result_text.setText(intent.getStringExtra("SCAN_RESULT"));
} else if (resultCode == RESULT_CANCELED) {
result_text.setText("Scan cancelled.");
}
}
}
}
Ответы
Ответ 1
@Зайти подход, который вы принимаете, строго не рекомендуется.
В соответствии с их рекомендациями вы не должны явно называть Scan Intent.
Вы должны использовать новый класс IntentIntegrator
, выпущенный zxing.
Здесь вы идете
Сначала добавьте код для вызова намерения:
IntentIntegrator integrator = new IntentIntegrator(yourActivity);
integrator.initiateScan();
Загрузите класс IntentIntegrator снизу вверх.
http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.java
Во-вторых, добавьте это в свою активность, чтобы обработать результат:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null) {
// handle scan result
}
// else continue with any other code you need in the method
...
}
Поделитесь своим временем, чтобы пройти через страницу вики Zxing. Они объяснили это очень красиво.
http://code.google.com/p/zxing/w/list
http://code.google.com/p/zxing/wiki/ScanningViaIntent
Вот пример приложения, демонстрирующий, как вызвать намерение Zxing.
http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java
Наконец, Test Project + Library находится в
http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid-integration%253Fstate%253Dclosed
Ответ 2
Исследование http://code.google.com/p/zxing/
В любом случае проблема довольно сложная, это IIRC, выполненная с использованием четырехгранников, обнаружения границ, вычислений матриц и т.д. Кроме того, существует множество стандартов. Подготовьтесь к месяцу (-ям) работы.
Ответ 3
Посмотрите на ссылку ниже, это поможет вам разработать приложение сканирования штрих-кода
Сканирование штрих-кода1 Сканирование штрих-кода2
Ответ 4
Firebase ML kit API сканирования штрих-кода может быть использован для создания функции сканирования штрих-кода в приложениях для Android. Чтобы получить значение штрих-кода, прямое изображение, содержащее штрих-код, необходимо передать в API-интерфейс сканирования штрих-кода Firebase ML.
Вот пример приложения с функцией сканирования штрих-кода.