【问题标题】:Android hardware power button broadcast listenerAndroid 硬件电源按钮广播监听器
【发布时间】:2017-02-20 08:53:10
【问题描述】:

我想在 android 服务中监听设备电源按钮。因为我在服务中,所以我不能使用密钥监听器。目前我正在通过使用 android.intent.action.SCREEN_OFF/android.intent.action.SCREEN_ON 过滤器注册广播侦听器来做到这一点,如下所示。

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
Receiver mReceiver = new Receiver();
registerReceiver(mReceiver, filter);

问题

这不是执行此操作的理想方式,因为无需按下电源按钮即可更改屏幕状态。例如,当有来电响铃时,它会出现在屏幕上。我怎样才能听到确切的硬件电源按钮?还是不可能?

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    当设备电源按钮按下然后dispatchKeyEvent方法调用

         /* lock power button */
            @Override
            public boolean dispatchKeyEvent(@NonNull KeyEvent event)
            {
                return event.getKeyCode() == KeyEvent.KEYCODE_POWER || blockedKeys.contains(event.getKeyCode()) || super.dispatchKeyEvent(event);
            }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多