Android PixelCopy 完美截图系统界面:后台运行,广播触发
抱歉,之前给出的代码有误,请参考以下代码使用 PixelCopy.request 来截取当前系统界面的屏幕截图:
// 在广播接收器中获取截图
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获取屏幕的宽高
DisplayMetrics metrics = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getRealMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
// 创建一个Bitmap对象来存储截图
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
// 创建一个Surface对象
Surface surface = new Surface(bitmap);
// 使用PixelCopy.request来截取系统界面
PixelCopy.request(windowManager.getDefaultDisplay(), bitmap, (copyResult) -> {
if (copyResult == PixelCopy.SUCCESS) {
// 截图成功,可以在这里进行保存或其他操作
} else {
// 截图失败
}
// 释放资源
surface.release();
}, new Handler());
}
}
请确保在 AndroidManifest.xml 文件中注册广播接收器,并在合适的地方触发广播来截取系统界面的屏幕截图。
原文地址: https://www.cveoy.top/t/topic/qAxK 著作权归作者所有。请勿转载和采集!