PowerManager.WakeLock PowerManager.WakerLock是我分析Standup Timer源代码时发现的一个小知识点,Standup Timer 用WakeLock保证程序运行时保持手机屏幕的恒亮...PowerManager 和PowerManager.WakerLock7用于对Android设备的电源进行管理。...和WakeLock的操作步骤 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService...().方法获取PowerManager实例。 ...然后通过PowerManager的newWakeLock((int flags, String tag)来生成WakeLock实例。
(savedInstanceState); setContentView(R.layout.activity_main); powerManager = (PowerManager...奇怪了,为什么PowerManager会持有Activity的实例呢,按照理解,PowerManager应该是持有Application的Context对象的。...因此,我们有必要对PowerManager的源码分析一下 1.PowerManager会持有一个Context实例,具体使用Activity还是Application的Context取决于调用者。...new CachedServiceFetcher() { @Override public PowerManager createService...1 PowerManager powerManager = (PowerManager)getApplicationContext().getSystemService(Context.POWER_SERVICE
服务 : 跨进程获取 PowerManager 服务 ; PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE...(PowerManager.PARTIAL_WAKE_LOCK) ③ 创建 PowerManager.WakeLock : 调用 PowerManager 对象 的 newWakeLock 方法 , 创建唤醒锁...; mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WAKE_LOCK"); ④ 开启唤醒 CPU 操作 :...服务 PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); // 判断是否支持...){ // 创建只唤醒 CPU 的唤醒锁 mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
android.content.Context; import android.content.Intent; import android.os.Build; import android.os.PowerManager...param context */ public static void addWhiteList(Context context){ // 获取电量管理器 PowerManager...powerManager = (PowerManager) context....; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.PowerManager...powerManager = (PowerManager) context.
** * 唤醒手机屏幕并解锁 */ public static void wakeUpAndUnlock() { // 获取电源管理器对象 PowerManager...pm = (PowerManager) MyApplication.getContext() .getSystemService(Context.POWER_SERVICE...screenOn) { // 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag PowerManager.WakeLock...wl = pm.newWakeLock( PowerManager.ACQUIRE_CAUSES_WAKEUP |...PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright"); wl.acquire(10000); // 点亮屏幕 wl.release
class PhotoActivity extends AppCompatActivity { @SuppressLint("InvalidWakeLockTag") private PowerManager.WakeLock...KeyguardManager.KeyguardLock kl = km.newKeyguardLock("unlock"); kl.disableKeyguard(); PowerManager...pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP...| PowerManager.FULL_WAKE_LOCK, "bright"); wl.acquire(); } } @Override
最后通过 PowerManager.WakeLock 在屏幕休眠后保持cpu唤醒状态以使得service继续运行。 官网提醒:这个API会加剧耗电,所以在非必要情况下尽量不要使用。...在service中使用方式如下: ... private PowerManager.WakeLock wakeLock = null; ......@Override public void onCreate() { super.onCreate(); PowerManager pm = (PowerManager) getSystemService...(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TimerService.class.getName
首先看看官方的解释: PowerManager:This class gives you control of the power state of the device....PowerManager.WakeLock: lets you say that you need to have the device on....PowerManager负责对Android设备电源相关进行管理,而系统通过各种锁对电源进行控制,WakeLock是一种锁机制,只要有人拿着这把所,系统就无法进入休眠阶段。...pm = (PowerManager)this.getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock...(PowerManager.PARTIAL_WAKE_LOCK|PowerManager.ON_AFTER_RELEASE, "PostLocationService");
电源管理PowerManager PowerManager是Android的电源管理类,用于管理电源操作如睡眠、唤醒、重启以及调节屏幕亮度等等。...PowerManager的对象从系统服务POWER_SERVICE中获取,它的主要方法如下: goToSleep : 睡眠,即锁屏。 wakeUp : 唤醒,即解锁。...pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE); try { Class<?...light取值0-255 public static void setLight(Context ctx, int light) { PowerManager pm = (PowerManager...()); } //重启 public static void reboot(Context ctx) { PowerManager pm = (PowerManager)
nowait”, 1); reboot.putExtra(“interval”, 1); reboot.putExtra(“window”, 0); sendBroadcast(reboot); */ PowerManager...pManager=(PowerManager) getSystemService(Context.POWER_SERVICE); pManager.reboot(“”); 整个代码: package...android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.os.PowerManager...nowait”, 1); reboot.putExtra(“interval”, 1); reboot.putExtra(“window”, 0); sendBroadcast(reboot); */ PowerManager...pManager=(PowerManager) getSystemService(Context.POWER_SERVICE); pManager.reboot(“重启”); System.out.println
网上有一种解决方案是使用PowerManager来实现屏幕不锁屏: /** * 打开休眠锁只能保持手机不休眠 * @param context */ @Deprecated...public static void openWakeLock(Context context) { PowerManager powerManager = (PowerManager) context.getSystemService...(Service.POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK
AndroidManifest.xml中添加权限 android.permission.WAKE_LOCK 然后使用PowerManagerService来创建一个唤醒锁,并启用,代码如下: val powerManager...= getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK...唤醒锁后,屏幕会保持亮一会,而不是立刻锁屏,同样不能与PARTIAL_WAKE_LOCK同时使用 这里flag不互斥,可以同时设置 所以levelAndFlags这个参数可以是单独的level,比如“PowerManager.PARTIAL_WAKE_LOCK
复制代码 Java代码: 01.PowerManager...pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 02.PowerManager.WakeLock mWakeLock =...pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); 03.// in onResume() call 04....mWakeLock.acquire(); 06.// in onPause() call 07.mWakeLock.release(); 复制代码 我们再在main代码中写上PowerManager.SCREEN_DIM_WAKE_LOCK
---- 保持CPU运行 如果你需要在设备睡眠之前,保持CPU运行来完成一些工作,你可以使用PowerManager系统服务中的唤醒锁功能。唤醒锁允许应用控制设备的电源状态。...如果你的应用不满足上述情况,可以使用下面的方法直接设置唤醒锁: PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE...); Wakelock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag
如何在锁屏界面弹出悬浮窗 如何监听系统屏幕锁屏 经过总结,监听系统的锁屏可以通过以下两种方式: 1) 代码直接判定 2) 接收广播 1) 代码直接判定 代码判断方式,也有两种方法: a) 通过PowerManager...的isScreenOn方法,代码如下: PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE)...(isScreenOn, new Class[] {}); PowerManager pm = (PowerManager) context.getSystemService(Activity.POWER_SERVICE...添加代码如下: PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE); if (!...pm.isScreenOn()) { PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP
比如: 之前在PowerManager里面添加过一个新接口,用来释放所有的wake lock,接口调用如下: PowerManager pm = (PowerManager) getSystemService...现在在Activity里使用我们的新接口: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); pm.releaseAll
Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可以判断屏幕状态是否锁屏,但是只有屏幕状态发生改变时才会发出广播; 2)如果要在屏幕状态发生改变之前就想获取屏幕状态,可以通过反射机制调用PowerManager...android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.PowerManager...getScreenState(); } /** * 获取screen状态 */ private void getScreenState() { PowerManager...manager = (PowerManager) mContext .getSystemService(Context.POWER_SERVICE); if (manager.isScreenOn
wifi_lock_ = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, TAG);wifi_lock_.acquire();PowerManager...powerManager = (PowerManager) context_.getSystemService(Context.POWER_SERVICE); //激活CPU性能锁定wake_lock..._ = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);wake_lock_.acquire();APP停止播放或业务关闭的时候
private WakeLock mWakeLock = null; private void acquireWakeLock() { if(mWakeLock == null) { PowerManager...pm = (PowerManager)getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(...PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, this.getClass().getCanonicalName
领取专属 10元无门槛券
手把手带您无忧上云