android 手电筒 常亮 全屏
?
初学android,继续熟悉中,备忘
?
?
你可能还需要
<uses-permission android:name="android.permission.DEVICE_POWER" />
另外WakeLock的设置是 Activiy 级别的,不是针对整个Application应用的。
可以在activity的onResume方法里面操作WakeLock,? 在onPause方法里面释放。
?
?
package com.titus;
?
import android.app.Activity;
import android.os.Bundle;
import android.os.PowerManager;
import android.view.Window;
import android.view.WindowManager;
?
public class TitusTorch extends Activity {
?? ?/**
?? ? * Called when the activity is first created.
?? ? */
?? ?@Override
?? ?public void onCreate(Bundle savedInstanceState) {
?? ? ? ?super.onCreate(savedInstanceState);
?? ? ? ?setFullscreen();
?? ? ? ?setContentView(R.layout.main);
?
?
?? ? ? ?WindowManager.LayoutParams lp = getWindow().getAttributes();
?? ? ? ?lp.screenBrightness = 1.0f;
?? ? ? ?getWindow().setAttributes(lp);
?
?? ? ? ?alwaysOn();
?? ?}
?
?? ?@Override
?? ?protected void onDestroy() {
?? ? ? ?super.onDestroy();
?? ? ? ?if (wakeLock != null) {
?? ? ? ? ? ?wakeLock.release();
?? ? ? ?}
?? ?}
?
?? ?//常亮
?? ?private void alwaysOn() {
?? ? ? ?wakeLock = ((PowerManager) getSystemService(POWER_SERVICE)).
?? ? ? ? ? ? ? ?newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "MyActivity");
?? ? ? ?wakeLock.acquire();
?? ?}
?
?? ?//全屏
?? ?public void setFullscreen() {
?? ? ? ?requestWindowFeature(Window.FEATURE_NO_TITLE);
?? ? ? ?getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
?? ?}
?
?? ?//无标题
?? ?public void setNoTitle() {
?? ? ? ?requestWindowFeature(Window.FEATURE_NO_TITLE);
?? ?}
?
?? ?private PowerManager.WakeLock wakeLock;
}