2011-02-08 53 views
0

我的目標與電源按鈕一樣。
我嘗試PARTIAL_WAKE_LOCK,這是我的代碼..電源按鈕應該怎麼做(關閉屏幕,鎖定鍵盤)?

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); 
wl.acquire(); 

在AndroidManifest.xml

<uses-permission android:name="android.permission.WAKE_LOCK" /> 

,我開WAKE_LOCK允許後但是,當我啓動我的應用程序沒有事情發生。
我錯過了什麼嗎?

感謝

回答

0

從你的問題我不能完全肯定是否你:

  1. 嘗試通過按下一個按鈕
  2. 要確保設備不會去關閉設備睡眠(因爲這是WakeLock應該幫助你)。它不能阻止用戶交互(只是在HTC Desire上測試)。

對於1)您不能鎖定裝置或把它的電源,無需簽名作爲一個系統的應用程序,如寫在這裏:http://groups.google.com/group/android-developers/browse_thread/thread/36399f15724ac3ae/98d93e53616cf495?show_docid=98d93e53616cf495

對於2)可以防止設備使用WakeLock睡覺,示例代碼可以這樣讀取:

/** 
* Called when the activity is first created. 
*/ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG); 
} 

// Call me from a button 
public void doLock(View view) { 
    Log.d(TAG, "Lock"); 

    if (!wl.isHeld()) { 
     Log.d(TAG, "acquire"); 
     wl.acquire(); 
    } else { 
     Log.d(TAG, "release"); 
     wl.release(); 
    } 
}