Подтвердить что ты не робот

Как создать сканер штрих-кода (Android)?

Может ли кто-нибудь сказать мне, нужно ли создавать приложение сканера штрих-кода (для Android)? Хорошо ли работает OpenCV-библиотека? Где я могу найти алгоритм, который четко объясняет, как читать штрих-коды? Я буду благодарен всем хорошим материалам по этой теме!

Спасибо заранее!

4b9b3361

Ответ 1

Проект ZXing предоставляет автономное приложение для чтения штрих-кодов, которое через механизм намерения Android может быть вызвано другими приложениями, которые хотят интегрировать сканирование штрих-кода.

Самый простой способ сделать это - вызвать ZXing SCAN Intent из вашего приложения, например:

public Button.OnClickListener mScan = new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        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");
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}

Нажатие кнопки, связанной с mScan, запустится непосредственно на экран сканера штрих-кода ZXing (или сбой, если ZXing не установлен). Как только штрих-код будет распознан, вы получите результат в своей деятельности, здесь, в переменной содержимого.

Чтобы избежать сбоев и упрощения для вас, ZXing предоставил класс утилиты, который вы могли бы интегрировать в ваше приложение, чтобы сделать установку ZXing более плавным, перенаправляя пользователя на Android Market, если он еще не установлен.

Наконец, если вы хотите интегрировать сканирование штрих-кода прямо в ваше приложение, не полагаясь на то, что у вас установлено отдельное приложение ZXing, тогда это проект с открытым исходным кодом, и вы можете это сделать!:)

Ответ 2

Вы можете использовать существующий сканер штрих-кода Zebra Crossing для Android, доступный по адресу: http://code.google.com/p/zxing/. Обычно идея заключается в том, что вы будете ссылаться на нее с помощью намерений, как в примере здесь: http://code.google.com/p/zxing/wiki/ScanningViaIntent.

Ответ 3

Пересечение Zebra - лучший документированный Java-декодер или кодировщик штрих-кода Java 1D или 2D. Многие используют его, и он стал стандартом де-факто для Android. Там здоровый шум об этом здесь тоже.

RedLaser имеет api, но вам придется платить, если вы используете его на производстве. Когда я попробовал это, я не нашел впечатляющего улучшения по сравнению с Zebra Crossing. Конечно, не для цена.

jjil делает штрих-коды, но в проекте всего 3 коммиттера, и я никогда не использовал его так что я не знаю, что сказать вам об этом. Его source, безусловно, читается.

Как только вы начнете читать, вы обнаружите, что читателям сложно реализовать из-за размытых изображений, шума, искажений, странных углов, и так далее. Поэтому, если вы хотите что-то надежное, вы, вероятно, захотите пойти с библиотекой, поддерживаемой сообществом.