Рубрика «Сканер ШК»

1. Выбор способа обмена. Описание API.

2. Реализация API на стороне 1С.

3. BroadcastReceiver. Получаем данные

4. OnKeyUp. Сканер ШК с эмуляцией клавиатуры

Эта статья должна была стать самой короткой. Но дьявол в деталях. Вот несколько фактов.

Факт 1. Если у нас на форме есть несколько полей EditText, и для всех мы переопределим OnKeyListener, то onKeyUp и onKeyDown затеняются и больше не вызываются. Код.

class MainActivity : AppCompatActivity() {

    var keyListener: View.OnKeyListener = View.OnKeyListener { _, _, _ ->
        true}
        
        override fun onCreate(savedInstanceState: Bundle?) {
          val editBarcode = findViewById(R.id.editBarcode)
          editBarcode.setOnKeyListener (keyListener)

          val editQuantity: EditText = findViewById(R.id.editQuantity)
          editQuantity.setOnKeyListener(keyListener)

Из этого следует
Факт 2. onKeyUp и onKeyDown срабатывают только для тех полей, для которых не переопределен OnKeyListener. И только при нахождении в данном поле.

Факт 3. АТОЛ Lite.Droid в версии 1.1.1 не передает KeyEvent = KEYCODE_TAB если он выставлен в качестве префикса. Ни в префикс1, ни в префикс2. В суффикс я его не пробовал. Он там не нужен.

Факт 4. onKeyUp, onKeyDown, setOnKeyListener — слушают только аппаратные нажатия. Клавиатура, сканер с эмуляцией клавиатуры, и как ни странно, кнопка «назад» на экране, это тоже аппаратная кнопка («KEYCODE_BACK»). А цифровые кнопки(физические) на ТСД это — программные кнопки. Почему так, я не понял :) Ну да ладно.

Теперь немного теории.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js