Четыре уровня интеграции
1. Keyboard wedge
Самый простой вариант: обычный EditText, без camera
permission и SDK. Профиль Knox Capture связывается с package/Activity, а
результат приходит как ввод.
barcodeEditText.requestFocus()
barcodeEditText.doAfterTextChanged { value ->
validateBarcode(value?.toString().orEmpty())
}Не рассчитывайте на onKeyDown для каждого символа: в
нашем тесте вся строка ABC-1234 пришла одним
text_changed. Enter/Tab, prefix/suffix и задержка клавиш
настраиваются в профиле.
2. Soft trigger
Собственная кнопка приложения отправляет явный broadcast в Knox
Capture. На стороне Capture включается Start scan from business app и
профиль целевого package. Отправитель должен быть foreground,
использовать явный package и PendingIntent.
3. Intent output
Когда нужны symbology, raw bytes, scan source и scanner type,
настройте Android intent вместо keyboard wedge. Обрабатывайте
com.samsung.smartscan.scanned_bundle_list, используйте
узкий intent filter и проверяйте extras.
4. Knox Capture SDK
Нужен, если приложение владеет preview, scanner UI и callback
BarcodeResult. Это уже нативная camera-интеграция с
.aar, лицензией SDK и Camera permission; для обычной формы
начинать с SDK необязательно.
Выбор
| Требование | Решение |
|---|---|
| Вставить строку в legacy/WebView form | keyboard wedge |
| Собственная кнопка Scan, стандартный scanner UI | soft trigger |
| Получить тип кода и raw bytes | intent output |
| Собственный preview/UI и callbacks | Capture SDK |
Полные примеры и extras — в большом гайде.
Официальные источники: soft trigger, intent output, Knox Capture SDK.