Android保持屏幕常亮的三种方法

第一种方法:(可切换,需权限会提示,较为繁琐)

1.首先添加权限

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

2.代码实现如下

public class ScreenActivity extends Activity  
  
   {  
        PowerManager powerManager = null;  
        WakeLock wakeLock = null;  
  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            this.setContentView(R.layout.main);  
            powerManager = (PowerManager)this.getSystemService(this.POWER_SERVICE);  
            wakeLock = this.powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock");  
       }  
  
       @Override  
       protected void onResume() {  
           super.onResume();  
           wakeLock.acquire();  
       }  
  
       @Override  
       protected void onPause() {  
           super.onPause();  
           wakeLock.release();  
       }  
  
   }  

第二种方法:(定义了常量,貌似无法切换)

不用定义权限,直接在

@Override   
protected void onCreate(Bundle icicle) {   
super.onCreate(icicle);  
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);   
}  

补充一下创建锁时flag的值及意义:
int flags 
各种锁的类型对CPU 、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK :保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK :保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK :保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

第三种方法:(推荐,可切换)

在布局文件里加上android:keepScreenOn="true"

使用keepScreenOn属性非常简单

step 1:在你需要常亮的Activity对应的布局文件中,随便给一个UI组件设置:android:keepScreenOn="true"

然后,只要Activity不被停止的话,那么屏幕会一直保持常亮

step 2:怎么关闭常亮么?也很简单啊~在你需要关闭常亮的时候,修改UI组件的属性,把他设置为false就可以了

发布了104 篇原创文章 · 获赞 5 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览