两次电源按钮按下发送短信

时间:2014-01-30 05:30:51

标签: android button sms

我正在尝试创建一个可以在按下电源按钮时响应的应用程序。更具体地说,当按下2次时会响应它并发送短信。

我也尝试使用BroadcastReceiver,但它没有用。

以下是我尝试用来覆盖电源按钮的代码:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        Intent i = new Intent(this, MainActivity.class);
        startActivity(i);
        return true;
    }

    return super.dispatchKeyEvent(event);
}

我也尝试了这个:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{
        if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) 
        {
            // do what you want with the power button
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(phoneNo, null, sms, null, null);
           Toast.makeText(getApplicationContext(), "SMS Sent!",
            Toast.LENGTH_LONG).show();

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

使用BroadcastReceiver我也试过了

public BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Check action just to be on the safe side.
        if ((intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) ||
                (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) ) {

            long delta = 0;
            int count = 0;
            if((System.currentTimeMillis() - delta) < DOUBLE_CLICK_INTERVAL) 
            {
                count++;
                Log.e("AAAAAAAA", "count= "+count);
            }else{
                count = 0;
            }

            if(count == 4){
                Log.e("AAAAAAAA", "EVENT TRIGGERED!!!!!");
                Intent alarmIntent = new Intent("com.helpme.EVENT_MyReceiver");
                sendBroadcast(alarmIntent);
            }

            delta = System.currentTimeMillis();
        }
    }
};

但以上都没有为我工作。

1 个答案:

答案 0 :(得分:0)

我认为你应该在系统(Android)关闭时调用你的事件,这样你就可以拦截像事件一样按下的按钮。

我建议您构建一个广播接收器以捕获ACTION_SHUTDOWN意图,然后在onReceive()方法中,您可以执行任何您喜欢的操作。