Android12 录屏时代码设置不显示屏幕上悬浮窗
时间: 2023-12-19 15:04:54 浏览: 115
Android代码-Andorid 任意界面悬浮窗,实现悬浮窗如此简单
5星 · 资源好评率100%
在 Android 12 中,系统默认情况下不允许应用程序在录屏时显示悬浮窗。如果您需要在录屏时显示悬浮窗,可以使用以下代码:
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// Android 12 及以上版本
if (mMediaProjection != null) {
// 获取当前应用的窗口类型
int type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
// 请求权限
if (mMediaProjection.canProjectType(type)) {
// 开始录屏
mVirtualDisplay = mMediaProjection.createVirtualDisplay(
"ScreenCapture",
mScreenWidth,
mScreenHeight,
mScreenDensity,
DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR | DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
mSurface,
null,
null
);
}
}
} else {
// Android 12以下版本
if (mMediaProjection != null) {
mVirtualDisplay = mMediaProjection.createVirtualDisplay(
"ScreenCapture",
mScreenWidth,
mScreenHeight,
mScreenDensity,
DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
mSurface,
null,
null
);
}
}
```
其中,`TYPE_APPLICATION_OVERLAY` 是 Android 12 中允许应用程序在录屏时显示悬浮窗的窗口类型,`canProjectType` 方法用于检查当前应用程序是否有权限显示该窗口类型的悬浮窗。如果权限被授予,则可以调用 `createVirtualDisplay` 方法开始录屏。
需要注意的是,`TYPE_APPLICATION_OVERLAY` 窗口类型需要在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
```
阅读全文