Кнопка Bluetooth не запускает службу доступности - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь создать приложение, сопоставить кнопку гарнитуры Bluetooth для другой цели.

Проблема, которую я пытаюсь решить: многие из нас постоянно находятся в режиме конференц-связи и используютBluetooth-гарнитуры.Хотя Google опубликовал рекомендации для кнопок гарнитуры, не все производители следуют этому.Например,В руководствах говорится, что длительное нажатие центральной кнопки на 3-кнопочной гарнитуре должно отключить / включить звук вызова.Но у меня есть LG Force Headset, которая переводит вызов в режим удержания при длительном нажатии.У меня есть другая гарнитура, которая вообще не реагирует на долгое нажатие.

Запрос специальной аппаратной кнопки отключения звука на телефоне или на гарнитуре уже давно выполняется.Есть несколько гарнитур с выделенной кнопкой отключения звука.В магазине приложений есть несколько приложений, в которых утверждается, что они могут переназначить кнопки Bluetooth для выполнения необходимых функций.Я пробовал приложения, и они не работают, и я думаю, что знаю почему.Таким образом, единственный вариант - избавиться от текущей гарнитуры и получить новую с выделенной кнопкой отключения звука.

Причина, по которой доступные в настоящее время приложения не работают, вероятно, из-за изменений в поведении, введенных в Oreo.

Цитата: Приложения должны иметь возможность обрабатывать события мультимедийных кнопок в трех случаях в порядке приоритета:

Когда активность пользовательского интерфейса приложения видна, Когда активность пользовательского интерфейса скрыта и приложениемультимедийный сеанс активен, когда активность пользовательского интерфейса скрыта, а мультимедийный сеанс приложения неактивен и его необходимо перезапустить

С учетом этих изменений ограничений приложение для повторного сопоставления кнопок никогда не получает широковещательную информацию от Bluetoothгарнитура.

Итак, я подумал о создании приложения с использованием Accessibility Services (я прочитал https://www.tooploox.com/blog/unusual-ways-using-android-accessibility-services) и захвата нажатия кнопки с гарнитуры Bluetooth. Приложение правильно захватывает нажатие кнопки с проводной гарнитуры ифизические кнопки на мобильном телефоне. Но, когда я нажимаю кнопку на гарнитуре Bluetooth, ничего не происходит.

Я читаю в этом блоге (http://mikesgeneralblog.blogspot.com/2015/08/controlling-bluetooth-buttonsof-course.html), в котором говорится, что мне нужно подавить ключевые события из Bluetoothустройство, прежде чем я могу его перепрограммировать. Но я не мог понять, какчтобы сделать это из моего приложения.

Итак, мой вопрос, не могли бы вы помочь с тем, что мне нужно сделать, чтобы перехватить действия кнопки гарнитуры Bluetooth?

...