小编Raj*_*eev的帖子

全屏TYPE_ACCESSIBILITY_OVERLAY

我对 Android 上的辅助功能不太熟悉。在学习课程和文档时,我在课堂TYPE_ACCESSIBILITY_OVERLAY上遇到了这种情况WindowManager

文档(仅相关文字)

例如,如果存在可触摸的全屏辅助功能覆盖层,则辅助功能服务可以对其下方的窗口进行内省,即使它们被可触摸窗口覆盖。

因此,我着手实现这一目标,即全屏辅助功能叠加层,并尝试内省其下方的窗口

扩展AccessibilityService并在调用时添加了我的全屏覆盖onServiceConnected(添加覆盖的灵感来自这里

@Override
protected void onServiceConnected() {
    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    FrameLayout mLayout = new FrameLayout(this);
    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.type = WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
    lp.format = PixelFormat.TRANSLUCENT;
    lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    lp.width = WindowManager.LayoutParams.MATCH_PARENT;
    lp.height = WindowManager.LayoutParams.MATCH_PARENT;
    lp.gravity = Gravity.TOP;
    wm.addView(mLayout, lp);

    mLayout.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // Here I'm getting the touch events on the overlay …
Run Code Online (Sandbox Code Playgroud)

android accessibility android-overlay

3
推荐指数
1
解决办法
4852
查看次数

标签 统计

accessibility ×1

android ×1

android-overlay ×1