我想在android中创建这样的应用程序,当我按两次睡眠或电源按钮时会激活它,是否可以通过在后台运行应用程序并从电源按钮监听事件来实现?
有时候,一旦电话空闲,手机就会进入睡眠模式,并且要使用任何用户必须按下的应用程序 睡眠按钮,然后他必须输入一定的密码来激活手机。但我想让它在点击电源按钮时激活我的应用程序而不需要任何其他干预答案 0 :(得分:13)
你可以尝试这个技巧。
注册单击电源按钮时启动的广播接收器。 现在在接收器的OnReceive方法做你想要的。
例如:
清单文件中的注册一个接收者:
<receiver android:name="com.test.check.MyReceiver">
<intent-filter>
<action android:name="android.intent.action.SCREEN_OFF"></action>
<action android:name="android.intent.action.SCREEN_ON"></action>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"></action>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"></action>
<action android:name="android.intent.action.ACTION_SHUTDOWN"></action>
</intent-filter>
</receiver>
&安培;&安培;在接收器的onReceive()方法
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
Log.v("#@%@%#", "Power button is pressed.");
Toast.makeText(arg0, "power button clicked",Toast.LENGTH_LONG).show();
//perform what you want here
}
}
现在在Receiver的onReceive()方法中执行任何操作。
答案 1 :(得分:0)
这是一个关键的权力事件你可以从中得到一些想法只是尝试这个你会得到一些想法... 我没有尝试这样的行为,但我在电源管理器中找到了这个。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
// do what you want with the power button
return true;
}
return super.onKeyDown(keyCode, event);
}