有时这种检测用户交互的方法不起作用

时间:2018-10-01 16:09:52

标签: android android-windowmanager

我的Android应用程序必须检测用户交互才能在循环中使用方法A或方法B。

我在MainActivity的onCreate()中调用此方法...

@SuppressLint("ClickableViewAccessibility")
private void detectUserInteraction() {
    final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            0, 0, 0, 0,
            WindowManager.LayoutParams.TYPE_APPLICATION,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
            PixelFormat.TRANSLUCENT);
    final WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    if (wm != null) {
        final View view = new View(this);
        view.setOnTouchListener((v, event) -> {
            UserInteractionManager.getInstance().setRecentUserInteraction(true);
            return false;
        });
        wm.addView(view, params);
    }
}

...并且不适用于部分用户(最新的华为用户)。我有这些用户的日志文件,该方法仅能在几分钟内完成。

有人知道要解决该方法的问题吗?

非常感谢您。

0 个答案:

没有答案