Rexsee API介绍:Android屏幕锁定Keyguard
16lz
2021-01-23
Android锁屏时会先调用onPause();解锁时调用onResume,读入保存的应用程序的资源。如果运行程序时已经锁屏,应用程序会先调用onCreate(),然后onResume(),再则onPause()。
取消锁屏:
Html代码- <uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD"/>
- KeyguardManagermKeyGuardManager=(KeyguardManager)getSystemService(KEYGUARD_SERVICE);
- KeyguardLockmLock=mKeyGuardManager.newKeyguardLock("自己Activity名字");
- mLock.disableKeyguard();
也是相当的简单了,但基于Rexsee的API,可以通过一句话搞定。
1. 取消锁屏:window.setTimeout('rexseeKeyguard.disable();alert(\'自动解锁!\');',10000);
alert('请按电源键关屏再开屏看到锁屏画面,10秒后自动解锁。')
2. 启动锁屏:rexseeKeyguard.reEnable();
如下是rexseeKeyguard.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.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.content.Context; public class RexseeKeyguard implements JavascriptInterface { private static final String INTERFACE_NAME = "Keyguard"; @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 RexseeKeyguard(childBrowser); } private final Context mContext; private final RexseeBrowser mBrowser; private KeyguardLock mKeyguardLock = null; public RexseeKeyguard(RexseeBrowser browser) { mBrowser = browser; mContext = browser.getContext(); } public RexseeKeyguard(Context context) { mBrowser = null; mContext = context; } //JavaScript Interface public void enable() { /* try { DevicePolicyManager dpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); dpm.lockNow(); } catch (Exception e) { mBrowser.exception(getInterfaceName(), e); } */ } public void reEnable() { if (mKeyguardLock != null) { mKeyguardLock.reenableKeyguard(); mKeyguardLock = null; } } public void disable() { KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); mKeyguardLock = keyguardManager.newKeyguardLock(""); mKeyguardLock.disableKeyguard(); } }
更多相关文章
- 如何使Android应用程序获取系统权限
- Android工具之Hierarchy Viewer--分析应用程序UI布局
- Android应用程序中的多个Activity的显示创建和调用
- Android获取 应用程序大小,数据大小,缓存大小
- Android应用程序键盘(Keyboard)消息处理机制分析(26)
- android 设备开发 让应用程序出现在模拟器启动列表中
- Android应用程序键盘(Keyboard)消息处理机制分析(22)