可以不使用TYPE_APPLICATION_OVERLAY 换别的方式吗?
时间: 2023-10-09 22:04:23 浏览: 120
如果你不想使用 `TYPE_APPLICATION_OVERLAY` 权限,那么你可以考虑使用其他的 `WindowManager.LayoutParams` 类型,比如 `TYPE_APPLICATION_PANEL`,`TYPE_APPLICATION_MEDIA` 或者 `TYPE_APPLICATION_SUB_PANEL` 等,这些类型的窗口也可以被添加到 WindowManager 中。
以下是一个示例代码,你可以根据自己的需求进行修改:
```
// 创建 GLSurfaceView 对象
GLSurfaceView glSurfaceView = new GLSurfaceView(this);
// 将 GLSurfaceView 添加到 WindowManager 中
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION_PANEL, // 使用其他的 WindowManager.LayoutParams 类型
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE |
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.addView(glSurfaceView, params);
```
注意,不同的 `WindowManager.LayoutParams` 类型可能会有一些限制和不同的行为,具体可以参考 Android 官方文档中对这些类型的描述。
阅读全文