Как отключить "воздушную команду" на устройствах Android?
Привет, я разработал приложение с помощью стилуса (например, ручка Samsung). Как известно, при нажатии кнопки на стилусе появляется "Воздушная команда" (всплывающее окно). Моя цель - "Переопределение воздушного командования в мои пользовательские функции"
Сначала я начал с *SpenHoverListener" (поддерживается Samsung Spen SDK 5.0) и переопределил функцию onHover следующим образом.
private SpenHoverListener mHoverListener = new SpenHoverListener() {
@Override
public boolean onHover(View view, MotionEvent event) {
Log.e("Test",""+event.getButtonState());
updateHoverUI(event.getRawX(), event.getRawY(), event.getPressure(), event.getAction(), "Hover");
return true;
}
};
Я могу успешно отслеживать событие нажатия кнопки (BUTTON_STYLUS_PRIMARY => Кнопка нажата). ОДНАКО, я не могу отключить воздушную команду.
Есть ли способ отключить воздушную команду?
С наилучшими пожеланиями.
5 ответов
преамбула
В предыдущих моделях нот и планшетах можно было отключить команду " Воздух".
На Зефире (версия 6) такого переключения нет.
Чтобы отключить функцию команд Air в Samsung Galaxy Note 4 (при выпуске):
Go to Settings > Controls.
Tap on S Pen.
Tap on Air Command.
Disable Air Command.
Воздушное командование (пакет com.samsung.android.service.aircommand
) осуществляется через системный сервис.
Код
Условно Вы не можете программно удалить / отключить эту услугу Air (разрешения) и как system service
Похоже, у него есть первые сообщения о событиях на оборудовании (вы получаете их позже / также, и уже слишком поздно, чтобы остановить Air, если он активен). Как говорится, Greenify делает это, поэтому я искал другие варианты и нашел Brevent. Это совершенно бесплатный исходный код на GitHub (AS 3), я сейчас с ним играю (имейте в виду, что он содержит код на C, поэтому NDK требуется, если вы хотите его собрать, или посмотрите ->). Brevent Play Store
Воздушная команда недоступна в Galaxy Note 5
Для пользователей здесь эта проблема - проблема, а для вас - решение.
Вот некоторые комментарии выбора:
Некоторые владельцы сообщили, что воздушное командование в Galaxy Note 5 было серым. Причина появления неактивной воздушной команды Galaxy Note 5 обычно связана с некоторыми настройками доступности (Перейти к "Доступность" и включить Voice Assistant?). На самом деле, когда вы включили такие настройки доступности, в эфире появилось предупреждающее сообщение. Но большую часть времени никто не читает это.
У меня есть Galaxy Note 5, и все было хорошо, пока устройство не предложит мне обновить программное обеспечение для Android с 5.1.1 до 6.0.1.
У меня Note 5 и команда Air перестала работать после того, как я установил Norton Antivirus.
Greenify
Для личного пользования вы можете использовать бесплатное приложение:
(Android версии 6+, даже без рута!) Greenify для отключения Air Command Service
(чтобы отключить системные приложения / сервисы, нужно сделать небольшое " пожертвование ", а функция описана как " экспериментальная ").
Как отключить «воздушную команду» на устройствах Android?
Насколько я знаю, вы не можете программно отключить его на нерутированном устройстве; Я пробовал другие методы и даже использовал Greenify (очевидно, оплатил пакет пожертвований Greenify), и это не решило проблему, что сработало для меня (Samsung Galaxy Tab A SM-P580 WIFI), так это фактически удалить приложение.Сделал резервную копию приложения
adb pull /system/priv-app/AirCommand/AirCommand.apk %USERPROFILE%\Desktop\aircommand.apk
Удалил приложение
adb shell pm uninstall -k --user current com.samsung.android.service.aircommand
(Необязательно) Если вы хотите вернуть его, вы можете установить его снова с помощью adb.
adb install %USERPROFILE%\Desktop\aircommand.apk
Вот как я отключил AirCommand на устройстве Android, надеюсь, это поможет всем, кто в этом разбирается.
Хорошего дня!
С ADB или оболочкой суперпользователя это также можно сделать следующим образом:
pm disable com.samsung.android.service.aircommand
Чтобы снова включить его, сделайте то же самое, но →disable
enable
.
Просто измените тип возвращаемого значения на false. Это запустит ваш метод и сообщит Системе, что зависание не удалось; и, следовательно, не вызовет Air View.
private SpenHoverListener mHoverListener = new SpenHoverListener() {
@Override
public boolean onHover(View view, MotionEvent event) {
Log.e("Test",""+event.getButtonState());
updateHoverUI(event.getRawX(), event.getRawY(), event.getPressure(), event.getAction(), "Hover");
return false;
}
};
Ни одно из вышеупомянутых решений не помогло мне (Android 9 на Galaxy Tab S3). В частности, мне не удалось отключить Air Command с помощью ADB, как предлагает горячая клавиша. Однако это привело меня к следующей команде в оболочке ADB:
pm uninstall -k --user 0 com.samsung.android.service.aircommand
Удаление (без рутирования) радикальнее отключения. Однако это то, что я на самом деле искал, когда попал на эту страницу, и больше нигде не нашел. Думаю, было бы полезно поделиться им...