Android 4.4 使用辅助功能服务和服务隐藏导航栏/状态栏

标签 android service accessibility statusbar navbar

我通过为我的应用程序集成辅助功能服务来实现一些功能。

我目前有一个可以检测 TouchEvent 的“系统覆盖”ImageView。但是我已经看到它在沉浸式模式下完成,无需 root 即可隐藏状态栏或导航栏。

我需要能够访问触摸检测窗口的 View 才能处理任何辅助功能

我的无障碍服务包含:

     ...
        @Override
        public void onServiceConnected() {
            serviceInstance = this;
        }
    ...

我的触摸检测器:

  ...
        WindowManager wm;
        private MyAccessibilityService myAccessibilityService;
        private ImageView mTouchDetector;

        @Override
        public void onCreate() {

            super.onCreate();

            myAccessibilityService = MyAccessibilityService.getSharedInstance();

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                    100,
                    100,
                    0, 0,
                    WindowManager.LayoutParams.TYPE_PHONE,
                    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, debugMode());
            params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
            wm = (WindowManager) getSystemService(WINDOW_SERVICE);
            wm.addView(mTouchDetector, params);
    }
...

最佳答案

我已经部分解决了这个问题,但是后退按钮遇到了一些问题,请检查此处以查看是否已解决。

照常创建服务,但将这些标志添加到叠加层:

到窗口管理器:

TYPE_PRIORITY_PHONE, FLAG_FULLSCREEN | FLAG_NOT_TOUCH_MODAL

View :

int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
FloatingView.setSystemUiVisibility(uiOptions);

<强> Android floating window with hidden statusbar Accessibility problems

关于Android 4.4 使用辅助功能服务和服务隐藏导航栏/状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21996865/

相关文章:

javascript - HTML5 细节和总结可用性问题

android - 通过 ValueAnimator 与 ViewPropertyAnimator translationX 对边距进行动画处理

java - 告警管理器不重复执行

vue.js - Vuetify 2.x v-data-table 键盘命令/导航

checkbox - 未选中的复选框是否需要 >4.5 对比度才能符合 WCAG AA 标准?

class - Symfony2 依赖注入(inject)/服务容器

java - 在后退键上出现强制关闭错误

java - Android 闪光灯小部件代码崩溃

android - 理解 &lt 和 &gt

android - 获取后台服务实例