如何在 Android 台设备上禁用 "air command"?

How to disable "air command" on Android devices?

您好,我开发了一个使用手写笔(例如三星笔)的应用程序。 大家知道,当我们点击手写笔上的某个按钮时,会出现"Air command"(弹出window)。 我的目标是“air 命令覆盖到我的自定义函数中

首先,我从“*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 => 按钮被点击)。 但是,我无法禁用空中命令

有什么方法可以禁用空中命令吗?

此致。

前言

可以在以前的笔记本型号和平板电脑中禁用 Air command
在 Marshmallow(版本 6)上,没有这样的开关
要关闭 Samsung Galaxy Note 4(发布时)的浮窗指令功能:

Go to Settings > Controls.
Tap on S Pen.
Tap on Air Command.
Disable Air Command.

Air 命令(packagecom.samsung.android.service.aircommand)是通过 system service.

实现的

代码

名义上不能以编程方式remove/disable此航空服务(许可)并作为system service似乎第一次获得硬件事件(你得到它们later/also但太晚了 以停止 Air(如果它处于活动状态)。 话虽这么说 Greenify does it so I sought out other options and found Brevent. This is totally free source code it the GitHub (AS 3), I'm playing with it right now (be aware it contains C code so NDK required if you want to build it, or see ->). Brevent Play Store

空中指令在 Galaxy Note 5 中是灰色的

对于用户来说here this graying out是一个问题,对于你来说可能是一个解决方案。

以下是一些选择评论:

Some owners reported that air command in Galaxy Note 5 was grayed out. The cause of grayed out Galaxy Note 5 air command is usually due to some accessibility settings (Go to Accessibility and switch on Voice Assistant ?). Actually, when you enabled such accessibility settings, there were the warning message on air command. But most of time, nobody reads it.

I have a galaxy note 5 and everything was fine until the device suggest me to update its android software from 5.1.1 to 6.0.1

I have Note 5 and the Air command stopped working after I installed Norton Antivirus.

绿化

对于您个人使用,您可以使用“免费”应用程序:
(Android 版本 6+,即使没有 root!)Greenify 禁用 Air Command Service(禁用系统 apps/services 你需要做一个小的“捐赠”,函数被描述为“experimental”)。

只需将 return 类型更改为 false。这将启动您的方法,并将与悬停失败的系统进行通信;因此不会触发空气视图。

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;
    }
};

使用 ADB 或超级用户 shell,您也可以按如下方式进行操作:

pm disable com.samsung.android.service.aircommand

要重新启用它,请执行相同的操作,但 disableenable.

上述解决方案的

None 对我有用(Android 9 在 Galaxy Tab S3 上)。 特别是我没有像热键建议的那样成功地使用 ADB 禁用空军司令部。 然而,这导致我进入 ADB shell:

中的下一个命令
pm uninstall -k --user 0 com.samsung.android.service.aircommand

移除(无需 root)比禁用更彻底。然而,当我被带到当前页面时,这正是我真正要找的东西,但我在其他任何地方都找不到。所以我想分享它可能会有用...

如何在 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

这就是我在 Android 设备上禁用 Air Command 的方式,希望这对调查此问题的任何人有所帮助。

祝你有美好的一天!