在TYPE_SYSTEM_OVERLAY上触摸事件

时间:2015-06-02 12:28:50

标签: android android-fragments android-activity overlay

我有一个要求,我需要在屏幕锁定上显示叠加并订阅TYPE_SYSTEM_OVERLAY上的触摸事件。但是从论坛中,我发现这已不再可能(即订阅覆盖上的触摸事件)。

我无法更改为Type_Phone,因为它没有显示在屏幕锁定上。 (我已经尝试了几种类型,只有叠加显示在屏幕锁定上)。有关如何实现这一目标的任何想法?

    mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
            mView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.fragment_main, null);
        WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0,
                    WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                            | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                            | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
                    PixelFormat.RGBA_8888);
mWindowManager.addView(touchLayout, mLayoutParams);

...

view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
                    Log.i("Spot", "xyz..");
                }
                return true;
            }
        });

基本上,我想实现类似于按下电源按钮时发生的事情。系统触发覆盖(在锁定屏幕顶部),然后点击设备关闭

0 个答案:

没有答案