Вызов сканера штрих-кода по нажатию кнопки в приложении для Android - PullRequest
11 голосов
/ 09 апреля 2011

Я скачал zxing 1.6 и смог успешно запустить через него автономный сканер штрих-кода.Теперь этот сканер находится в другом проекте и (CaptureActivity), и у меня есть другой проект моего приложения под названием MyProj, все, что я хочу сделать, это нажать кнопку в моем проекте, вызвать CaptureActivity в другом проекте, как мне импортировать весь этот проект в мойпроект или что я делаю, чтобы это заработало.Заранее благодарим

1 Ответ

35 голосов
/ 09 апреля 2011

Я думаю, что «копирование» сканера штрих-кода и включение его в ваше приложение может перегружать ваши проекты.Вам обязательно следует использовать Намерение со сканера:

Отсюда: http://code.google.com/p/zxing/wiki/ScanningViaIntent

Если сканер штрих-кода установлен на вашем устройстве Android, вы можете отсканировать его для вас и вернуть результат, просто отправив его Намерение.Например, вы можете подключить кнопку для сканирования QR-кода следующим образом:

public Button.OnClickListener mScan = new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.setPackage("com.google.zxing.client.android");
        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
        }
    }
}

Дополнительные параметры, такие как сканирование штрих-кода продукта или запрос сканера штрих-кода для кодирования и отображения штрих-кода для вас, см.этот исходный файл:

http://code.google.com/p/zxing/source/browse/trunk/android/src/com/google/zxing/client/android/Intents.java

И вот некоторый источник из нашего тестового приложения, который показывает, как их использовать:

http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java

IntentIntegrator

Мы также начали создавать небольшую библиотеку классов, которая инкапсулирует некоторые детали, описанные выше.См. IntentIntegrator для более простого способа интеграции.В частности, это относится к случаю, когда сканер штрих-кода еще не установлен.

http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.java

Через URL С помощью сканера штрих-кода v2.6 вы также можете запустить приложение с URL-адреса вБраузерПросто создайте гиперссылку на http://zxing.appspot.com/scan, и сканер штрих-кода предложит запустить ее для обработки.Пользователи также могут выбрать автоматическое открытие сканера штрих-кода.

ПРИМЕЧАНИЕ. Этот URL-адрес не предназначен для показа текущей веб-страницы в браузере, это просто ловушка для запуска собственного приложения.

Известные проблемы Пользователь jamesikanos сообщает следующее «полученное сообщение»:

Создание действия TabHost с launchMode «singleInstance» Создание дочернего действия с помощью кнопки «Начать сканирование» (запуск zxing с помощью IntentIntegrator из этой кнопки) onActivityResultВаше дочернее действие немедленно вернется, так как «отмененный» onActivityResult никогда не вызывается впоследствии

...