Rexsee API介绍:Android(安卓)WakeLock进程持续,阻止应用休眠
16lz
2021-01-24
在Android中,WakeLock可以让进程持续执行,即使手机关屏、进入睡眠模式。。基于Rexsee的WakeLock扩展可以使用JS实现。。
【函数】 void acquire(boolean onAfterRelease) 【说明】 点亮屏幕直到release()被调用。 【参数】 onAfterRelease:在release()被调用后是否继续点亮至默认的屏幕超时。 【示例】
【函数】 void acquire(boolean onAfterRelease) 【说明】 点亮屏幕直到release()被调用。 【参数】 onAfterRelease:在release()被调用后是否继续点亮至默认的屏幕超时。 【示例】
window.setTimeout('rexseeKeyguard.disable();rexseeWakeLock.acquire(false);alert(\'点亮屏幕!\');',5000);alert('请按电源键关屏,5秒后自动亮屏。');
【函数】 void release() 【说明】 允许黑屏,如果调用的acquire()函数携带了参数true则仍需等待默认的屏幕超时时间后才会黑屏。 【示例】
rexseeWakeLock.release();
rexseeWakeLock.java源码
/* * Copyright (C) 2011 The Rexsee Open Source Project * * Licensed under the Rexsee License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.rexsee.com/CN/legal/license.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package rexsee.core.alarm; import rexsee.core.browser.JavascriptInterface; import rexsee.core.browser.RexseeBrowser; import android.content.Context; import android.os.PowerManager; public class RexseeWakeLock implements JavascriptInterface { private static final String INTERFACE_NAME = "WakeLock"; @Override public String getInterfaceName() { return mBrowser.application.resources.prefix + INTERFACE_NAME; } @Override public JavascriptInterface getInheritInterface(RexseeBrowser childBrowser) { return this; } @Override public JavascriptInterface getNewInterface(RexseeBrowser childBrowser) { return new RexseeWakeLock(childBrowser); } private final Context mContext; private final RexseeBrowser mBrowser; private PowerManager.WakeLock mWakeLock = null; public RexseeWakeLock(RexseeBrowser browser) { mBrowser = browser; mContext = browser.getContext(); } public RexseeWakeLock(Context context) { mBrowser = null; mContext = context; } //JavaScript interface public void acquire(boolean onAfterRelease) { release(); PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); int mode = PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP; if (onAfterRelease) { mode = mode | PowerManager.ON_AFTER_RELEASE; } mWakeLock = pm.newWakeLock(mode, ""); mWakeLock.acquire(); } public void release() { if (mWakeLock != null) { mWakeLock.release(); mWakeLock = null; } } }
仅对Rexsee的源码和函数事件做了整理,相关的demo或源码解析可以在Rexsee社区了解,目前Rexsee已提供了近2000个扩展,覆盖Android原生功能超过90%,且全部开放: http://www.rexsee.com/
更多相关文章
- C语言函数的递归(上)
- android webkit 网页标签的解析与预下载的实现
- Android关于Activity屏蔽/拦截Home键
- android手机屏幕横竖屏切换禁止调用生命周期函数方法
- Android(安卓)5.0(Lollipop)中的SurfaceTexture,TextureView, Sur
- Ruby实现Android自动化屏幕适配
- Android判断机器默认屏幕方向
- Android(安卓)HttpURLConnection及HttpClient选择
- android中Bitmap数据如何释放