用手机睡觉检测手势

我正在开发一个SOS安卓应用程序。 如果手机处于睡眠/待机模式,我想检测手势(例如屏幕上的几次触摸),并开始发送帮助请求(例如发送短信)。 我该如何检测这个手势? 有人可以帮助我吗? 谢谢

—解决方案—-我在这里找到了解决方案,这是我的代码:

1)在主要活动中

getApplicationContext().startService(new Intent(this, UpdateService.class)); 

2)我创建了一个服务

 public class UpdateService extends Service { @Override public void onCreate() { super.onCreate(); // register receiver that handles screen on and screen off logic IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); BroadcastReceiver mReceiver = new PowerHookReceiver(); registerReceiver(mReceiver, filter); } @Override public void onStart(Intent intent, int startId) { boolean screenOn = intent.getBooleanExtra("screen_state", false); if (!screenOn) { // your code } else { // your code } } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; }} 

3)我创建了一个PowerHookReceiver();

 public class PowerHookReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, UpdateService.class); context.startService(i); //do what you want }} 

4)清单

     

我希望它有用l =)

如果屏幕关闭(即处于待机状态),硬件将不会注册任何触摸事件,因此您无法提出要求(检测屏幕手势)。 当设备进入待机/睡眠状态时,触摸屏将被有效关闭以节省电池电量。 您可以做的最好的事情是检测一个唤醒屏幕的动作,例如一个硬件按钮。

此外,如果您想检测应用程序的触摸事件,则设备需要在前台启动您的活动。 同样,屏幕手势对于SOS类型的应用程序来说是非首发。

注意:手机在待机模式或睡眠模式下,屏幕上不会检测到任何触摸事件。 因此,唯一的选择是通过广播接收器中的寄存器意图操作从任何硬件按钮获取事件。

您可以通过挂钩电源按钮生成SOS。 注册单击电源按钮时启动的广播接收器。

现在在Receiver的onReceive()方法中做你想要的。 Code For Broadcast接收器类:

 public class PowerHookReceiver 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 } } 

在Manifest中注册此接收器:

           

现在在Receiver的onReceive()方法中执行您的任务。