Android QR-сканер / приложение для чтения автономно, без необходимости устанавливать приложение zxing – это незаконное / юридическое – все, что доступно отдельно от zxing

Я много исследовал о создании своего собственного приложения для Android с QR-кодом Scanner & Reader без необходимости устанавливать приложение Zxing на телефоне. Я также задал много вопросов, и я прочитал, что это возможно через одну или все из следующих ссылок:

http://jmanzano.me/integrating-zxing-in-our-own-android-app-barcodescanner/

Интеграция библиотеки ZXing прямо в мое приложение для Android

Integrate zxing barcode scanner into your Android app natively using Eclipse

Является ли законным делать это таким образом или мы должны использовать намерение? Есть ли там другие библиотеки с открытым исходным кодом, кроме zxing, где я мог бы использовать их библиотеку для интеграции в мой проект.

Я автор и источник большинства комментариев, о которых вы спрашиваете. До тех пор, пока вы соблюдаете условия лицензии Apache 2.0 (см. Комментарии здесь ), у вас есть лицензия на использование защищенной авторским правом работы проекта практически для любых целей.

Я не препятствую кому-либо повторять использование кода (в соответствии с вышеизложенным), даже некоторые из Barcode Scanner, так как он в конце концов является открытым исходным кодом и был отдан авторам, чтобы они приносили пользу сообществу. Я категорически не рекомендую полностью копировать проект в приложении. Для этого есть несколько причин:

  • Обычно люди копируют AndroidManifest.xml и его объявления. Это заставляет приложение клона реагировать на Intent s, предназначенные для приложения сканера штрих-кода. Это неудобства или нарушает пользовательский интерфейс для нашего приложения и других. Совсем не хорошо.
  • Копирование знакомого пользовательского интерфейса проекта заставит людей подумать, что они используют сканер штрих-кода, когда это не так. Здесь существует потенциальная юридическая проблема товарного знака, если ваш продукт смехотворно похож на другой. Лицензия с открытым исходным кодом не предоставляет права на товарный знак.
  • В результате проблемы с вашими приложениями могут быть сообщены нам как ошибки проекта. Разработчики попросили сделать это встраивание, конечно же, попросить большую помощь в списке рассылки. Это вредит всему сообществу, заставляя других поддерживать ваше приложение.

Обычными причинами для такого копирования являются:

  • Лучше использовать встроенное сканирование. Возможно, так, но вы можете написать свое собственное приложение для сканирования или, по крайней мере, свой собственный интерфейс. Я не уверен, что это лучший пользовательский интерфейс. Например, если вы используете Intents, ваши пользователи могут сканировать более качественные специализированные приложения, к которым у вас нет доступа, например, Barcode Scanner + или Goggles.
  • Моя компания не позволит мне использовать стороннее приложение. Может быть, но это всего лишь идентификация того, кто принимает решение, а не оправдывает его. Если это касается «соображений безопасности», они одинаково хорошо подходят для внедрения стороннего кода.

Эти причины, как правило, сводятся к «это сделает меня меньше денег». Я не думаю, что они перевешивают вышеперечисленные проблемы и, конечно же, не отвечают на вопрос о товарных знаках. У меня мало симпатий к подражателям, особенно, увидев так много клонов на рынке, что просто добавляют рекламу или в одном случае вредоносное ПО.

Команда Zxing справедливо указывает, что интеграция в ваше приложение путем интеграции исходного кода – не лучший код.

REF: http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

Зачем?

Это означает, что каждый раз, когда обновление публикуется для Zxing, вам придется скопировать обновленный код и включить его в свое приложение, а затем публиковать обновление для своего приложения по очереди. Нет никакой гарантии, что любые обновления будут совместимы с вашей текущей моделью.

Так что это оставляет нас с намерениями. См. http://code.google.com/p/zxing/wiki/ScanningViaIntent

Zxing проделали отличную работу с этим. Вы должны включить немного дополнительного кода, который элегантно справится с ситуацией, если у пользователя нет Zxing (или эквивалентного .Gog Goggles, который бежит Zhing, как ни странно). Он предложит им установить Zxing, если он не установлен, и если это произойдет, приложение начнет работу.

Мне лично нравится этот подход, потому что:

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

Я не говорю, что мне сложно интегрироваться, я говорю, что это, вероятно, не самый лучший подход. Тем не менее, мы обнаружили ситуации, в которых нам нужно сканирование, встроенное непосредственно в приложение. Для этого требуются некоторые незначительные поправки к источнику (изменение нескольких операторов switch на if / else).

Является ли законным делать это таким образом или мы должны использовать намерение?

Это с открытым исходным кодом, поэтому вы можете сделать это в любом случае. Однако я надеюсь, что мой вышеупомянутый опыт может помешать вам интегрировать свой код с вашим.

Код находится под Apache License V 2.0, и вы можете прочитать условия на странице http://code.google.com/p/zxing/wiki/LicenseQuestions.