Недокументированный код AMOTION_EVENT_ACTION при нажатии кнопки стилуса (Samsung S Pen Stylus)Android

Форум для тех, кто программирует под Android
Ответить
Гость
 Недокументированный код AMOTION_EVENT_ACTION при нажатии кнопки стилуса (Samsung S Pen Stylus)

Сообщение Гость »


В документации Android NDK есть типы 15 AMOTION_EVENT_ACTION, которые нумеруются от 0 до 14, как можно можно увидеть в разделе сводки при прокрутке вниз. Однако я наблюдаю следующее поведение:
[*]Не касайтесь экрана S Pen (оба находятся вне зоны наведения — это нормально) [*]Нажмите и удерживайте кнопку на S Pen. [*]Удерживая кнопку, коснитесь сенсорного экрана. [*]При проверке действия, связанного с MotionEvent, с помощью AMotionEvent_getAction(...), я теперь получаю код 213, который я могу нигде не нашел определения или документирования.
Я замаскировал верхние восемь битов, поскольку они содержат индекс указателя, связанного с индексом, но это не имеет (и не должно) иметь никакого значения. Когда стилус входит в контакт с сенсорным экраном или выходит из него, я также получаю 211/212, предположительно к этим событиям применяется постоянное смещение (AMOTION_EVENT_ACTION_MOVE = 2 + 211, AMOTION_EVENT_ACTION_UP = 1 + 211, AMOTION_EVENT_ACTION_DOWN = 0 + 211, ...). При наведении по-прежнему выдаются нормальные/ожидаемые коды. Сам статус кнопки определяется правильно. Вот событие, когда стилус касается сенсорного экрана при нажатии кнопки, а затем переходит в режим наведения:

D ДАВЛЕНИЕ: 0,041758, НАКЛОН: 0,404251, ОРИЕНТАЦИЯ: -1,119569 D Событие [Action=UNKNOWN_ACTION/211, ToolType=AMOTION_EVENT_TOOL_TYPE_STYLUS/2, Source=20482, ButtonStatus=00000020, PointerIdx=0] Я обновляюPointerIcon pointerType = 20001, вызываю pid = 26706 D setPointerIconType iconId = 20001, CallPid = 26706 D ДАВЛЕНИЕ: 0,081319, НАКЛОН: 0,435829, ОРИЕНТАЦИЯ: -1,152598 D Событие [Action=UNKNOWN_ACTION/213, ToolType=AMOTION_EVENT_TOOL_TYPE_STYLUS/2, Source=20482, ButtonStatus=00000020, PointerIdx=0] D ДАВЛЕНИЕ: 0,095482, НАКЛОН: 0,435829, ОРИЕНТАЦИЯ: -1,152598 ... D ДАВЛЕНИЕ: 0,001465, НАКЛОН: 0,435829, ОРИЕНТАЦИЯ: -1,152598 D Событие [Action=UNKNOWN_ACTION/212, ToolType=AMOTION_EVENT_TOOL_TYPE_STYLUS/2, Source=20482, ButtonStatus=00000020, PointerIdx=0] D Событие [Action=AMOTION_EVENT_ACTION_HOVER_ENTER/9, ToolType=AMOTION_EVENT_TOOL_TYPE_STYLUS/2, Source=20482, ButtonStatus=00000020, PointerIdx=0] D РАССТОЯНИЕ: 6,000000, ДАВЛЕНИЕ: 0,000000, НАКЛОН: 0,000000, ОРИЕНТАЦИЯ: 1,570796 Я использую Samsung Tab S6 Lite с S Pen (а не Bluetooth). Я также пытался найти документацию Samsung по этому вопросу, но безуспешно.

Кто-нибудь наблюдал такое поведение/знает, определено ли оно где-нибудь формально? Мне бы очень хотелось понять, что происходит, а не просто жестко запрограммировать какие-то магические смещения. Спасибо.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»