我通过为我的应用程序集成辅助功能服务来实现一些功能。
我目前有一个可以检测TouchEvent的'系统覆盖'ImageView。但我已经看到它完成沉浸式模式,隐藏状态栏或导航栏是可能的,没有root。
我需要能够 访问我的触摸检测窗口的视图 才能处理任何辅助功能
我的辅助功能服务包含:
...
@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);
}
...
答案 0 :(得分:3)
我已经部分地解决了这个问题,但是在后退按钮上遇到了一些问题,请点击此处查看它是否得到解决。
正常创建服务,但将这些标志添加到叠加层:
到窗口管理器:
TYPE_PRIORITY_PHONE,FLAG_FULLSCREEN | FLAG_NOT_TOUCH_MODAL
到视图:
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
FloatingView.setSystemUiVisibility(uiOptions);
<强> Android floating window with hidden statusbar Accessibility problems 强>