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 中仍未定义。
我正在构建一个应用程序,它利用 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 中仍未定义。