我通过为我的应用程序集成辅助功能服务来实现一些功能。
我目前有一个可以检测 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/