Управление сканером терминала выполняется через приложение DataWedge. Попытки интегрировать во внешнюю компоненту Zebra API для Андроид окончились неудачно, видимо их модель многопоточности несовместима с архитектурой мобильной платформы 1С.
В процессе работы компонента создает отдельный профайл в DataWedge и привязывает к нему мобильное приложение. Настройки сканирования по-умолчанию для других приложений не изменяются. Наличие своего профайла и его параметры компонента проверяет каждый раз при запуске приложения. Иными словами, используя эту компоненту, Вы будете застрахованы от несанкционированного вмешательства в параметры ТСД "любопытных" пользователей, если кто-то изменит конфигурацию DataWedge, компонента сама восстановит свои настройки. Следует учесть, что компонента не порождает в 1С внешние события при сканировании, для их получения используйте другие средства, например эту компоненту, пример конфигурирования которой приведен ниже (в пример конфигурации включена ее ограниченная версия):
КомпонентаОповещений = Новый("AddIn.Messages.UniversalBroadcast");
// Значение параметра "FilterName" должно совпадать со значением параметра "EventName"
// компоненты Zebra
КомпонентаОповещений.УстановитьПараметр("FilterName", "com.iksoftware.zebra.SCAN");
КомпонентаОповещений.УстановитьПараметр("Category", "android.intent.category.DEFAULT");
ШаблонДанных = КомпонентаОповещений.ПолучитьШаблонОписанияДанных();
ТипМетки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.label_type", XMLСтрока(Ложь), XMLСтрока(0));
ТипДанные = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.data_string", XMLСтрока(Ложь), XMLСтрока(0));
КомпонентаОповещений.УстановитьПараметр("CaptureData", ТипМетки);
КомпонентаОповещений.УстановитьПараметр("CaptureData", ТипДанные);
КомпонентаОповещений.Подключить();
Компонента из статьи подключается стандартно:
КомпонентаНастройки = Новый("AddIn.DWSetup.ZebraDW");
Ее архитектура соответствует стандарту:
Она имеет четыре параметра:
- Device - целое число, индекс используемого сканера. По умолчанию параметр равен -1, что соответствует устройству по-умолчанию
- ProfileName - имя профайла вашего приложения в DataWedge
- EventName - имя рассылаемого оповещения (broadcast). Как указывалось выше, оно должно совпадать с настройками компоненты-получателя оповещений
- ScannerFound - его значение по умолчанию равно "Истина", если на устройстве найдено оборудование сканирования Zebra. Параметр только для чтения.
Методы "Подключить" и "Отключить" включают и выключают сканер.
Для детальной настройки параметров сканирования компонента содержит дополнительный метод "УстановитьПараметрСканера" (SetScannerParameter) с двумя строковыми аргументами, который позволяет установить множество различных дополнительных настроек.
История обновлений:
- Релиз 1.0.2 - в компоненты включены библиотеки для 64-битной версии Андроид.
- Релиз 1.0.3 - удален поиск приложения Zebra DataWedge, так как последние версии ОС Андроид требуют особых привелегий для такой операции. Вместо него добавлен параметр "ScannerFound".