- PVSM.RU - https://www.pvsm.ru -
Здравствуй! Хочу предложить вашему вниманию немного магии для часов на Wear OS.
Некоторое время назад, незадолго [1] до выпуска Android 9.0, был представлен новый публичный API [2], позволяющий использовать устройства на Android в качестве Bluetooth-устройств ввода (мышь, клавиатура, геймпад, и т.д.), и вот я создал простое приложение, которое демонстрирует один из способов использования этого API. (Спойлер: это работает не только на девятом андроиде.)
Вы уже могли догадаться из названия, что делает это приложение: по сути, это обыкновенная аэромышь, совместимая с любыми устройствами на Windows, OSX, Linux (включая Raspbian), Chrome OS, Android (включая Android TV), при условии наличия приёмника Bluetooth; не требуются ни root-права, ни «серверное» приложение.
Достаточно запустить приложение, провести спаривание по Bluetooth, и можно будет:
Примерно представить себе, как это выглядит, можно по этому видео (демонстрация раннего прототипа конца 2015 года):
В приложении есть четыре режима: аэромышь, тачпад, курсорные клавиши и ввод текста.
Режим аэромыши достаточно самоочевиден. В нём есть две наэкранных кнопки для левого и правого клика, шторка сверху для переключения режима отслеживания движения в зависимости от того, на какую руку надеты часы (также есть режим, в котором часы можно держать в руке, как лазерную указку), и шторка снизу для дополнительных функций: клик с удержанием (также известный как «режим Fruit Ninja») и клик средней кнопкой. Если у ваших часов есть крутящаяся «корона», её можно использовать для прокрутки. Стрелка курсора мыши должна быть направлена в сторону экрана, которым вы управляете.
Режим тачпада поддерживает все привычные жесты: перемещение указателя, клик, двойной клик, тап с удержканием, тап двумя пальцами для правого клика, прокрутка двумя пальцами. Для выхода из этого режима можно накрыть экран ладонью, либо нажать дополнительную кнопку на часах (если у часов больше одной кнопки).
Режим курсорных клавиш довольно прост: тап по краям экрана вызывает нажатие соответствующих клавиш, двойной тап по центру вызывает нажатие Enter, длинное нажатие в центре используется для выхода, плюс есть свайпы из центра для клавиш Escape, Backspace, пробел и Tab.
Наконец, в режиме ввода текста можно использовать либо экранную клавиатуру, либо голосовой ввод. Надо отметить, что вводимый на подключенном устройстве текст зависит от раскладки клавиатруры. К сожалению, пока поддерживается только английская раскладка (можно было бы добавить больше, но это потребовало бы ручного переключения её как в приложении, так и на подключенном устройстве).
Если у ваших часов больше одной кнопки, то вторую можно использовать для быстрого переключения между режимами ввода, а третью — для быстрого вызова режима ввода текста.
Также имеются некоторые настройки. Можно стабилизировать перемещения курсора (это сгладит мелкие движения вроде тряски рук), включить диагональные направления для курсорных клавиш (это полезно в тех самых играх для Cardboard), или снизить частоту передачи данных (что может помочь при использовании приложения с некоторыми старыми приставками Android TV на седьмом андроиде, когда мышиный курсор не успевает за движениями рук).
Как я упомянул выше, API стал публичным в Android 9.0, однако приложение также будет работать на любых часах с Android 8.0. То есть, если при перезагрузке часов, после скачущих цветных точек, появляется большая цветная «W» и надпись «Wear OS by Google» вместо «Android Wear», то всё должно работать. Сам API появился в Android Oreo, и немного отличался (а также был скрыт), но до Android Pie он был включен только на часах. К слову, существует способ включить его на телефонах с восьмёркой, но для этого нужны root-права (на девятке всё и так будет работать).
Если при подключении курсор мыши двигается дёрганно, примерно раз в секунду, попробуйте влючить и выключить режим самолёта, после чего снова подключиться. Похоже, в стеке Bluetooth есть плавающая ошибка с управлением энергопотреблением…
Для регулировки чувствительности следует зайти в настройки подключенного устройства, а не приложения.
При использовании приложения с устройством, подключенным к телевизору, стоит переключить телевизор в «игровой» режим. Это должно отключить пост-процессинг, вызывающий очень большие задержки на современных телевизорах.
Также имеет смысл выключить управление жестами в настройках часов при использовании режима аэромыши, иначе высока вероятность случайно выполнить жест «назад» или «домой».
Play Store [7] (не пытайтесь открыть эту ссылку с телефона, получите сообщение «устройство не совместимо»; либо откройте ссылку на компьютере, либо найдите приложение в Play Store на самих часах).
Исходный код [8] (почти весь, кроме поддержки Oreo).
Автор: Иван Подогов
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/android/309377
Ссылки в тексте:
[1] незадолго: https://www.xda-developers.com/android-p-bluetooth-keyboard-mouse/
[2] публичный API: https://developer.android.com/reference/android/bluetooth/BluetoothHidDevice
[3] https://t.co/LSuLRDQtVL: https://t.co/LSuLRDQtVL
[4] https://t.co/km8jx9E4x6: https://t.co/km8jx9E4x6
[5] pic.twitter.com/YrREye4QEl: https://t.co/YrREye4QEl
[6] January 17, 2019: https://twitter.com/hoitab/status/1085853355476283393?ref_src=twsrc%5Etfw
[7] Play Store: https://play.google.com/store/apps/details?id=com.ginkage.wearmouse
[8] Исходный код: https://github.com/ginkage/wearmouse
[9] Источник: https://habr.com/ru/post/440802/?utm_source=habrahabr&utm_medium=rss&utm_campaign=440802
Нажмите здесь для печати.