Как запустить сканер BarCode из источников ZXing на Java, Android? - PullRequest
2 голосов
/ 04 января 2012

Я только что подал заявку, используя сканер BarCode (ZXing 1.7).Пользователь не использует сканер штрих-кода на своем телефоне, поэтому я не могу добавить внешний сканер штрих-кода в свое приложение.Я добавил источники ZXing для в свой проект, но я не знаю, как я могу выполнить его без намерений.Пожалуйста, помогите мне.

Обновление: или как сделать так, чтобы внешний сканер штрих-кода автоматически устанавливался с моим приложением?

Ответы [ 3 ]

2 голосов
/ 04 января 2012

Вы не можете установить внешний сканер штрих-кода для автоматической установки.Что вы можете сделать, это проверить, установлена ​​ли она, и, если нет, отобразить диалоговое окно, спрашивающее пользователя, хотят ли они его установить (это приведет пользователя к ссылке на рынок приложений).

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

1 голос
/ 31 января 2012

Если сканер штрих-кода zxing установлен в мобильном телефоне, его очень просто:

Intent intent = new Intent(
                                "com.google.zxing.client.android.SCAN");
                        intent.putExtra("SCAN_MODE", "PRODUCT_MODE");//for Qr code, its "QR_CODE_MODE" instead of "PRODUCT_MODE"
                        intent.putExtra("SAVE_HISTORY", false);//this stops saving ur barcode in barcode scanner app's history
                        startActivityForResult(intent, 0);

и в OnActivityResult:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                    String contents = 

data.getStringExtra("SCAN_RESULT"); //this is the result
    }
else if (resultCode == RESULT_CANCELED) {

         // Handle cancel

}

Если он не установлен: вы можете поставитьэтот код в блоке try-catch и перехвата исключения, вы можете сделать это:

Uri marketUri = Uri
                                .parse("market://details?id=com.google.zxing.client.android");
                        Intent marketIntent = new Intent(Intent.ACTION_VIEW,
                                marketUri);
                        startActivity(marketIntent);

Таким образом, он перенаправляет приложение на Android Market, и ваше приложение продолжает работать один раз, если установлен сканер штрих-кода.

Если вы не хотите использовать другое приложение в вашем приложении, вам нужно скачать библиотеку zxing и попробовать использовать классы из файла core.jar (он создается с помощью apache ant).Следуйте этому руководству, чтобы сделать это: http://code.google.com/p/zxing/wiki/GettingStarted

0 голосов
/ 04 января 2012

Просто используйте предоставленный Интегрированный код для целей .Это очень просто.Он отправит пользователя в Market для загрузки приложения.Это гораздо лучше, чем пытаться автоматически установить его по крайней мере по трем причинам.Во-первых, я не думаю, что пользователи ожидают, что приложения установят другие приложения, и, вероятно, им это не понравится.Во-вторых, он будет работать только в том случае, если пользователь настроил на устройстве сторонние приложения из-за пределов Market.Наконец, вы будете устанавливать потенциально старую версию.

...