Как подключить сканер штрих кода к телефону через блютуз

Обновлено: 18.05.2024

Предлагаю Вашему вниманию сервис для работы с bluetooth сканером штрихкода, который выполняет передачу данных в мобильное приложение 1С посредством фонового уведомления. Данный подход упрощает работу пользователю с оборудованием.

Предыстория

На данный момент в предприятиях занимающихся торговлей очень часто используются сканеры штрихкодов (как проводные, так и безпроводные) и терминалы сборы данных (ТСД). Разница между ними - цена! Одно устройство ТСД может стоить нескольких (а то и больше) обычных сканеров. Каждое предприятие старается сократить затраты, очевидно выбор падет на обычный сканер. И вот тут на помощь приходит мобильная платформа 1С, которая может работать с подключаемыми устройствами к мобильному устройству. Но, не все так просто.

Как работает сканер штрихкодов?

На данный момент, обычный (современный) сканер имеет два режима работы: режим разрыва клавиатуры и режим эмуляции com-порта (другое название SPP Mode).

В режиме разрыва клавиатуры сканер - это клавиатура. В таком случае необходимо чтобы:

  • Экран был включен
  • Курсор стоял в поле ввода
  • Необходимо разрабатывать особый алгоритм отработки данных
  • Необходимо чтобы было запущено приложение (в наш случае 1С) для получения и обработки данных со сканера.

Очевидно, режим SPP это то что нам нужно.

Как подключить беспроводной сканер к мобильному устройству в режиме SPP Mode?

На инфостарте есть несколько публикаций, которые выполняют похожую функцию, но к сожалению только для ТСД. Им огромное спасибо за идею.

Сервис для работы с беспроводным сканером в режиме SPP Mode

Проштудировав множество сайтов по Java, наткнувшись на множество недоработок в мобильной платформе 1С, в конечном итоге написал приложение (правда без графического интерфейса), которое реализует требуемую функцию.

Немного о сервисе:

  • Сервис предоставляет функцию получению УИД устройства (только спаренного, то есть подключенного). Полученный УИД можно будет сохранить где-нибудь в константе и далее использовать его для подключения
  • Сервис предоставляет функцию подключения к сканеру (с помощью ранее полученного УИДа) и обеспечивает фоновую работу с устройством.
  • Сервис выполняет фоновую отправку уведомления в мобильное приложение 1С.
  • Сервис работает со всеми сканерами которые имеют функцию SPP Mode





Вот основное действие для запуска сервиса

Вот процедура для обработки уведомлений из сервиса (все возвращаемые значения имеют тип "Строка")

Баги, фичи и прочие факи

При разработке приложения на Java проблем не было. Они начались при попытки "подружить" сервис и мобильного приложения 1С.

Итак, имеем следующие баги (или если хотите недоработки) в мобильной платформе 1С:

  • Самая важная проблема - мобильное приложение не может принимать внешние оповещения. Вернее в каких то версиях могло принимать, а в каких то нет. В комментариях к этой (Публикация) публикации это упоминалось. Чиниться это просто:

в файле платформы permissions.xml по адресу Android\prjandroid-arm\bin (точно также как описано в публикации) добавляем android:exported="true" и добавляем фильтр на получаемые уведомления

в итоге должны получить следующее:

Читайте также: