【发布时间】:2014-02-24 19:16:49
【问题描述】:
我通过为我的应用程序集成无障碍服务实现了一些功能。
我目前有一个可以检测 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);
}
...
【问题讨论】:
-
您能解释一下您所说的“但是我已经看到它完成了沉浸式模式,在没有 root 的情况下隐藏状态栏或导航栏是可能的”?你想完成什么?
-
使用无障碍服务,全局隐藏系统 ui。在 nexus 设备上充分利用整个屏幕。我的应用没有位于前台的活动,它是一个带有“系统覆盖”的服务
-
一定是因为play store上的沉浸模式应用使用了没有root的服务!
标签: android service accessibility statusbar navbar