//使用PowerManager.WakeLock来保证程序运行时保持手机屏幕一直亮着。 public class MainActivity extends AppCompatActivity { private PowerManager.WakeLock mLock = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.content_main); } //点击按钮把屏幕设置为保持亮着的相应的状态。 public void lock(View view){ acquireWakeLock(this); } //获取锁 public void acquireWakeLock(Context context) { if (mLock == null) { PowerManager powerManager = (PowerManager)(context.getSystemService(Context.POWER_SERVICE)); //保持cpu运转,允许保持屏幕亮,但是可能是灰的 mLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); // //保持CPU 运转,屏幕和键盘灯有可能是关闭的。 // mLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag"); // // 保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯 // mLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "My Tag"); // // 保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度 // mLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag"); // // 正常唤醒锁实际上并不打开照明。相反,一旦打开他们会一直仍然保持(例如来世user的activity)。当获得wakelock,这个标志会使屏幕或/和键盘立即打开。一个典型的使用就是可以立即看到那些对用户重要的通知。 // mLock = powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag"); // // 设置了这个标志,当wakelock释放时用户activity计时器会被重置,导致照明持续一段时间。如果你在wacklock条件中循环,这个可以用来减少闪烁 // mLock = powerManager.newWakeLock(PowerManager.ON_AFTER_RELEASE, "My Tag"); mLock.acquire(); } } //释放锁 public void releaseWakeLock() { if(mLock != null && mLock.isHeld()){ mLock.release(); mLock = null; } } @Override public void onPause() { releaseWakeLock(); super.onPause(); } } //该程序运行得加上权限<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
PowerManager.WakeLock的简单使用
最新推荐文章于 2024-05-03 17:26:52 发布