Не могу сканировать QR-коды с помощью ZXing

Я новичок в Android-разработке и, как и многие другие, отчаянно пытаюсь интегрировать ZXing в свой проект. Мне нужно сделать отдельное приложение для сканирования QR для Android. (Я использую SDK 2.3.3).

Я должен объяснить, что я уже пытался найти решение своей проблемы, прочитав все ответы по теме, но у меня ничего не получилось.

Вот что я сделал:

  1. Я скачал выпуск ZXing 2.0 с здесь

  2. Затем я добавил активы, src и res в свой проект, просто перетащив файлы в свой проект.

  3. Я сослался на архив core.jar, расположенный в папке «core», щелкнув правой кнопкой мыши в моем проекте> Путь сборки> Настроить путь сборки. Я добавляю ir как внешний JAR.

Это изображение для иллюстрации.

  1. Здесь я получал некоторые ошибки в идентификаторах и некоторых других ресурсах. Это происходило из-за того, что я ссылался на неправильный запрос R.java, поэтому я решил это, изменив «import com.google.zxing.client.android.R» на «import com.android.novaqr.R», что является моими проектами. упаковка.

  2. Затем я добавил:

    <uses-permission android:name="android.permission.CAMERA"/>
    

а также

    <activity android:name="com.google.zxing.client.android.CaptureActivity"
    android:screenOrientation="landscape"
    android:configChanges="orientation|keyboardHidden"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:windowSoftInputMode="stateAlwaysHidden">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.DEFAULT"/>
      </intent-filter>
      <intent-filter>
        <action android:name="com.google.zxing.client.android.SCAN"/>
        <category android:name="android.intent.category.DEFAULT"/>
      </intent-filter>
    </activity>

в AndroidManifest.xml

Итак, теперь у меня нет ошибок в моем коде, и вот где мне нужна помощь: мне нужно, чтобы телефон сканировал, когда я нажимаю кнопку. Я пробовал много решений, которые я видел по другим вопросам по этой теме, но мне это не удалось.

Я надеюсь, что я ясно выразил свой вопрос, если нет, дайте мне знать, и я постараюсь быть более конкретным

Любая помощь будет действительно оценена.


person Pepe Ramirez    schedule 19.05.2012    source источник


Ответы (1)


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

Вместо этого вы можете использовать службу сканирования приложения с помощью Intent, которая намного проще и поддерживается: http://code.google.com/p/zxing/wiki/ScanningViaIntent

person Sean Owen    schedule 19.05.2012
comment
Я понимаю, но пользователю не очень удобно заставлять их устанавливать оба приложения, я бы предпочел сделать это внутри своего приложения. - person Pepe Ramirez; 19.05.2012
comment
Это не означает, что можно полностью копировать наше приложение, что, похоже, вы и делаете, поскольку у вас нет опыта для выборочного повторного использования частей. Не похоже, что это вариант для вас, если вы не можете заставить его работать. Итак: используйте намерения. - person Sean Owen; 19.05.2012
comment
Вы понимаете, что это, вероятно, нарушает наш товарный знак, если вы используете пользовательский интерфейс? Это не вежливое предложение — это разработчик говорит вам, как вам нужно подходить к этому. - person Sean Owen; 19.05.2012
comment
Я понимаю, но для пользователя не очень удобно обязывать их устанавливать оба приложения, я бы предпочел сделать это внутри своего приложения - я думаю, что это не очень удобно, что вы заставляете их устанавливать свою собственную копию приложения. программное обеспечение для сканирования штрих-кодов, когда у них, вероятно, уже есть то, которое, несомненно, будет работать лучше и будет менее подвержено будущим ошибкам, установленным на их устройстве. Интеграция различных приложений с намерениями имеет основополагающее значение для ОС Android. Буквально ОС была разработана таким образом, чтобы приложения работали вместе. В целом это лучше для пользователя. - person FoamyGuy; 20.05.2012