2012-01-20 42 views
7

我想在Android中創建這樣的應用程序,當我按睡眠或電源按鈕兩次時,它將被激活,是否有可能通過在後臺運行應用程序和從電源按鈕 ?單擊電源按鈕時激活應用程序

有些時候手機一進入睡眠模式就會進入睡眠模式,並且使用任何應用程序的用戶必須按 睡眠按鈕,然後他必須輸入某個密碼才能激活手機。但是我想讓它在沒有任何其他干預的情況下單擊電源按鈕時激活我的應用程序

+0

你必須寫一個服務要做到這一點,我沒有嘗試,但這裏是一個smiliar question.http://stackoverflow.com/questions/5907102/home-button-listener – ocanal

回答

13

您可以試試這個技巧。

註冊單擊powerbutton時啓動的廣播接收器。 現在在Receiver的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 
    } 
} 

查閱方法執行的onReceive任何操作()接收方法。

+1

嘿以上欺騙工作....我做了這個代碼和它的工作,並顯示了電源按鈕連接或斷開連接時的敬酒..我修改了一下代碼,所以我編輯上面的帖子有點..希望它可以幫助你... –

+0

您能否告訴我們您在上述代碼中所做的更改。並請粘貼完整的最高檔文件。謝謝 –

+0

這5個操作,唯一一個在telefone被鎖定時工作的是SCREEN_ON-Event。 – bofredo

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); 
} 
+2

這隻適用於_onKeyDown_正在運行且處於活動狀態的活動 – Moesio