在Android中,Wake Lock用于防止設備進入睡眠狀態。要開啟Wake Lock,請按照以下步驟操作:
<uses-permission android:name="android.permission.WAKE_LOCK" />
import android.content.Context;
import android.os.Build;
import android.os.PowerManager;
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 請求Wake Lock權限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.WAKE_LOCK}, REQUEST_CODE);
}
}
private PowerManager.WakeLock getWakeLock() {
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (powerManager != null) {
return powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLockTag");
}
return null;
}
注意:PARTIAL_WAKE_LOCK
表示允許CPU保持喚醒狀態,但屏幕可能會關閉。您可以根據需要使用其他Wake Lock類型。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 請求Wake Lock權限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.WAKE_LOCK}, REQUEST_CODE);
}
// 獲取Wake Lock實例
wakeLock = getWakeLock();
}
release()
方法。例如,在onDestroy()方法中添加以下代碼:@Override
protected void onDestroy() {
super.onDestroy();
// 釋放Wake Lock
if (wakeLock != null && wakeLock.isHeld()) {
wakeLock.release();
}
}
現在,您的設備應該保持喚醒狀態,直到Wake Lock被釋放。請注意,長時間使用Wake Lock可能會導致電池快速耗盡。在實際應用中,請確保合理安排Wake Lock的使用。