想要访问 android 中的电源按钮事件
Want to Access Power Button events in android
i=0;
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("In Key Down Method." + event.getKeyCode());
if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
i++;
System.out.println("Power button pressed.");
if (i == 2) {
System.out.println("Power button pressed continuoulsy 3 times.");
Toast.makeText(MainActivity.this, "Power button pressed " + i + " times.", Toast.LENGTH_SHORT).show();
} else {
System.out.println("Power button pressed continuoulsy " + i + " times.");
Toast.makeText(MainActivity.this, "Power button pressed " + i + " times.", Toast.LENGTH_SHORT).show();
}
}
return super.onKeyDown(keyCode, event);
}
我正在尝试使用上面的 code.Its 访问电源按钮事件,对 Volume_Up 和 Volume_Down 键工作正常,但对 Power/Lock Button.Why 不工作发生?
建议一些示例或代码。
您应该将以下权限添加到您的清单文件中:
<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
您无法覆盖应用程序中的电源按钮按下操作。但是当你按下电源按钮时,屏幕会变成 on/off。所以你可以使用广播接收器检测到这一点。
<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>
MyBroadCastReciever.java
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
}
}
}
希望对您有所帮助。
注意:-为了让我的广播接收器始终保持 运行 在 Background.I 中,我编写了一个后台服务,它在后台不断启动并增强我的广播接收器。
i=0;
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("In Key Down Method." + event.getKeyCode());
if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
i++;
System.out.println("Power button pressed.");
if (i == 2) {
System.out.println("Power button pressed continuoulsy 3 times.");
Toast.makeText(MainActivity.this, "Power button pressed " + i + " times.", Toast.LENGTH_SHORT).show();
} else {
System.out.println("Power button pressed continuoulsy " + i + " times.");
Toast.makeText(MainActivity.this, "Power button pressed " + i + " times.", Toast.LENGTH_SHORT).show();
}
}
return super.onKeyDown(keyCode, event);
}
我正在尝试使用上面的 code.Its 访问电源按钮事件,对 Volume_Up 和 Volume_Down 键工作正常,但对 Power/Lock Button.Why 不工作发生? 建议一些示例或代码。
您应该将以下权限添加到您的清单文件中:
<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
您无法覆盖应用程序中的电源按钮按下操作。但是当你按下电源按钮时,屏幕会变成 on/off。所以你可以使用广播接收器检测到这一点。
<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>
MyBroadCastReciever.java
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
}
}
}
希望对您有所帮助。
注意:-为了让我的广播接收器始终保持 运行 在 Background.I 中,我编写了一个后台服务,它在后台不断启动并增强我的广播接收器。