1

我需要知道用户何时会连续按电源键 2 或 3 次。但是如果用户不在应用程序中,可以在主屏幕上说,甚至使用任何其他应用程序。

我在活动上而不是在服务上获得电源键的侦听器事件。

   @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(KeyEvent.KEYCODE_POWER == event.getKeyCode()){

        Log.e("POWER", "pow");
          return true;//If event is handled, falseif 

    }
    return super.onKeyDown(keyCode, event);
}

我如何知道用户是否在活动之外按下了电源按钮?

4

1 回答 1

3

您无法覆盖应用程序中的电源按钮按下。但是当您按下电源按钮时,屏幕会打开/关闭。所以你可以使用广播接收器检测到这一点

<receiver android:name=".MyBroadCastReciever">
    <intent-filter>
        <action android:name="android.intent.action.SCREEN_OFF"/>
        <action android:name="android.intent.action.SCREEN_ON"/>
    </intent-filter>
</receiver>

和广播接收器类

public class MyBroadCastReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            //Take count of the screen off position
        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            //Take count of the screen on position
        }
    }
}

希望这对你有帮助。

于 2013-10-09T05:55:39.377 回答