Android TYPE_ACCESSIBILITY_OVERLAY z 顺序控制

Android TYPE_ACCESSIBILITY_OVERLAY z order control

我正在构建一个应用程序,它利用 TYPE_ACCESSIBILITY_OVERLAY 在 windows 上显示一些绘图。我注意到如果有另一个应用程序使用 TYPE_ACCESSIBILITY_OVERLAY,有时它们的 windows 会绘制在我的 windows 之上。据我了解,图层顺序(z 顺序)是根据用户授予辅助功能权限的顺序决定的。有没有什么方法可以控制图层,以便我可以将我的图层设置在任何其他图层之上?

这里是展示我如何显示视图的部分代码。

layoutParams = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                realScreenHeight,
                LAYOUT_FLAG,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                        WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
                        WindowManager.LayoutParams.FLAG_SECURE |
                        WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN|
                        WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                PixelFormat.TRANSLUCENT);

        layoutParams.gravity =  Gravity.TOP | Gravity.CENTER;

        windowManager.addView(view, layoutParams);

阅读Android源码,有一个函数

 /**
 * Sets the layer which determines the Z-order of the window. Windows
 * with greater layer appear on top of windows with a lesser layer.
 *
 * @param layer The window layer.
 *
 * @hide
 */
public void setLayer(int layer) {
    mLayer = layer;
}

public final class AccessibilityWindowInfo 但是当我尝试访问这个函数时,它说这个函数不存在。但是

 /**
     * Gets the layer which determines the Z-order of the window. Windows
     * with greater layer appear on top of windows with a lesser layer.
     *
     * @return The window layer.
     */
    public int getLayer() {
        return mLayer;
    }

来自相同的 class 确实存在,如果在我的辅助功能权限之前打开了辅助功能权限,则显示带有 TYPE_ACCESSIBILITY_OVERLAY 内容的程序的 returns 数字更高。

有什么方法可以控制这些图层吗?

抱歉 - 这些层的顺序未定义,并且在 Android R 中仍未定义。