繁体   English   中英

Android将GestureOverlay创建为系统警报视图(在所有应用程序之上)

[英]Android Create GestureOverlay as a System Alert View (on top of all apps)

我想为应用创建手势覆盖。 我希望gesutureoverlay在所有其他视图之上。 到目前为止,我已经使用文本框和按钮完成了此操作。 我有以下代码在所有应用程序的顶部创建叠加层,但是我无法在其他任何应用程序或主屏幕上使用其他任何内容。 该应用程序无法专注于背景视图。 但是,我确实可以覆盖手势。

我至少如何使手机正常工作,但如何查看用户在所有应用程序上进行的滑动(创建手势覆盖)? 这就是我到目前为止

@Override
public void onCreate() {
    super.onCreate();
    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
          WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM | 
          WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                   WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
            PixelFormat.TRANSLUCENT);
    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    GestureOverlayView g = new GestureOverlayView(getBaseContext());
    g.setGestureVisible(true);
    g.setEventsInterceptionEnabled(true);
    wm.addView(g, params);
}

首先,谢谢,因为您的代码帮助我使GestureOverlayView处于最佳状态。

我也在做类似的事情,据我所知你至少不能这样做。 为此,您需要拥有INJECT_PERSMISSION并且此权限仅授予系统签名的应用程序,因此,如果您没有ROM签名,则无法使用Android API进行此操作。

当然,还有其他方法可以做到这一点。

您可能要做的是在活动中获取事件,然后将其从活动中“重新插入”到您所下的活动中。 这是您无法通过android执行的操作。

看看这里这里

在这些链接中,您可以找到有关如何将事件注入Android系统的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM