当前位置: 代码迷 >> Android >> Rexsee API引见:Android屏幕锁定Keyguard
  详细解决方案

Rexsee API引见:Android屏幕锁定Keyguard

热度:179   发布时间:2016-05-01 20:50:05.0
Rexsee API介绍:Android屏幕锁定Keyguard

?

Android锁屏时会先调用onPause();解锁时调用onResume,读入保存的应用程序的资源。如果运行程序时已经锁屏,应用程序会先调用onCreate(),然后onResume(),再则onPause()。

?

取消锁屏:

?

Html代码?
  1. <uses-permission?android:name="android.permission.DISABLE_KEYGUARD"/>??
  2. KeyguardManager?mKeyGuardManager?=?(KeyguardManager)getSystemService(KEYGUARD_SERVICE);??
  3. KeyguardLock?mLock?=?mKeyGuardManager.newKeyguardLock("自己Activity名字");??
  4. 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();         }   } 
  相关解决方案