绘制和挂钩客户,而无需停止应用程序

2022-09-03 08:15:47

我试图弄清楚像滑动板(https://market.android.com/details?id=mobi.conduction.swipepad.android)这样的应用程序如何吸引客户,无论顶部的窗口/应用程序是什么,以及它如何在不停止其下方的后台应用程序的情况下绘制和交互。

我已经能够创建对话框和弹出窗口等应用程序,但是我无法在不停止/冻结后台应用程序的情况下显示它们。

更新:找到了合适的解决方案。

在您的服务的 on 创建添加此

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    params.setTitle("title");
    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    wm.addView(layout, params);

触摸事件的处理方式与常规事件相同,除非您不触摸服务 GUI 的元素,则服务不会读取触摸并将其传递到基础程序


答案 1

结合使用WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH这个问题的解决方案,我能够在不冻结应用程序的情况下完成您要做的事情。

不要忘记包含 uses-permission 标签“android.permission.SYSTEM_ALERT_WINDOW”。


答案 2

推荐