Как отключить "воздушную команду" на устройствах 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), так это фактически удалить приложение.
  1. Сделал резервную копию приложения
    adb pull /system/priv-app/AirCommand/AirCommand.apk %USERPROFILE%\Desktop\aircommand.apk

  2. Удалил приложение
    adb shell pm uninstall -k --user current com.samsung.android.service.aircommand

  3. (Необязательно) Если вы хотите вернуть его, вы можете установить его снова с помощью adb.
    adb install %USERPROFILE%\Desktop\aircommand.apk

Вот как я отключил AirCommand на устройстве Android, надеюсь, это поможет всем, кто в этом разбирается.

Хорошего дня!

С ADB или оболочкой суперпользователя это также можно сделать следующим образом:

pm disable com.samsung.android.service.aircommand

Чтобы снова включить его, сделайте то же самое, но disableenable.

Просто измените тип возвращаемого значения на 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

Удаление (без рутирования) радикальнее отключения. Однако это то, что я на самом деле искал, когда попал на эту страницу, и больше нигде не нашел. Думаю, было бы полезно поделиться им...

Другие вопросы по тегам