Как да създадете скенер за баркод (Android)?

Може ли някой да ми каже дали създаването на приложение за скенер на баркод (за Android) е трудно? OpenCV библиотеката добро начало ли е? Къде мога да намеря алгоритъм, който ясно обяснява как се четат баркодове? Ще оценя всички добри материали по тази тема!

Благодаря предварително!


person Ziem    schedule 04.11.2011    source източник
comment
Библиотеката ZXing може да сканира баркодове на Android. Това може да е отправна точка.   -  person Codo    schedule 04.11.2011


Отговори (4)


Проектът 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, тогава това е проект с отворен код и можете да го направите! :)

person Community    schedule 04.11.2011

Можете да използвате съществуващия скенер за баркод Zebra Crossing за Android, достъпен на адрес: http://code.google.com/p/zxing/. Обикновено идеята е да го извикате чрез намерения, както в примера тук: http://code.google.com/p/zxing/wiki/ScanningViaIntent.

person ivantod    schedule 04.11.2011
comment
Да кажем, че не искам да използвам толкова разширена библиотека, която прави всичко вместо мен. - person Ziem; 04.11.2011
comment
За съжаление тази библиотека не е особено удобна за използване само като библиотечен jar файл, който включвате във вашето приложение, но все пак можете да я „преопаковате“ ръчно и да се опитате да използвате само частите, които ви трябват/искате. Въпреки това, както казах, той е предназначен главно да се използва чрез намерения и е малко по-трудно да го „вградите“ в приложението си. Може би някой ще има друго предложение. - person ivantod; 04.11.2011

Zebra Crossing е най-добре документираният Java 1D или 2D баркод декодер или енкодер. Много хора го използват и той се превърна в де факто стандарт за android. Има здравословен шум за това и тук.

RedLaser има api, но ще трябва да платите, ако го използвате в производството. Когато го изпробвах, не открих, че е грандиозно подобрение спрямо Zebra Crossing. Със сигурност не за цената.

jjil работи с баркодове, но има само 3 комитера в проекта , и аз никога не съм го използвал, така че не знам какво да ви кажа за него. Неговият източник със сигурност е четлив.

След като започнете да четете, ще намерите читатели са трудни неща за изпълнение поради замъглени изображения, шум, изкривяване, странни ъгли и т.н. Така че, ако искате нещо надеждно, вероятно искате да изберете библиотека, поддържана от общността.

person Alec Wenzowski    schedule 04.11.2011

Можете да използвате zbar библиотека. Изтеглете го от: http://sourceforge.net/projects/zbar/files/AndroidSDK/

Мисля, че това е по-бързо и точно от zxing.

person NOBLE JINAN    schedule 29.05.2013
comment
Можеш ли да ми помогнеш. Моля с въпроса ми - person AMH; 16.03.2015