gpt4 book ai didi

android - 在 Android 中绘制叠加层(系统范围)

转载 作者:IT王子 更新时间:2023-10-29 00:58:12 25 4
gpt4 key购买 nike

有没有办法始终在任何 Android 应用程序之上绘制覆盖窗口?

我正在使用 Android x86 端口并拥有系统权限。

@Edit:叠加层下方的 View 应该接收所有事件。

最佳答案

可以通过创建一个将 View 添加到当前 WindowManager 中的 Service 来实现:

public class OverlayService extends Service {

@Override
public void onCreate() {
super.onCreate();

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

View overlay = /* create your overlay here */;

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
windowManager.addView(overlay , params);
}

@Override
public IBinder onBind(Intent intent) {
return null;
}
}

但是你需要这个额外的权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

然后只需在 list 中注册服务:

<service android:name=".OverlayService" ></service>

并启动它:

startService(new Intent(this, OverlayService.class));

关于android - 在 Android 中绘制叠加层(系统范围),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com