通过为应用程序集成可访问性服务,我已经实现了一些功能。
我目前有一个“系统覆盖” ImageView,可以检测TouchEvent。但是我已经看到它可以做到身临其境的模式,而无需root即可隐藏statusbar或navbar。
我需要能够访问我的触摸检测窗口的视图才能处理任何可访问性
我的无障碍服务包含:
...
@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
到视图:
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
FloatingView.setSystemUiVisibility(uiOptions);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句