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

取消锁屏:

Html代码
  1. <uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD"/>
  2. KeyguardManagermKeyGuardManager=(KeyguardManager)getSystemService(KEYGUARD_SERVICE);
  3. KeyguardLockmLock=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();         }   } 

更多相关文章

  1. Android(安卓)IPC 通讯机制源码分析
  2. android关机重启流程代码
  3. Android(安卓)中文api (81)——InputMethod [输入法]
  4. Android一级目录介绍
  5. Android开发秘籍学习笔记(一)
  6. Android(安卓)应用程序之间数据共享—ContentProvider
  7. 如何使Android应用程序获取系统权限
  8. Android平台上的JNI技术介绍
  9. ANDROID的MANIFEST.XML文件字段解析

随机推荐

  1. Android视音频录制实现步骤(Android学习随
  2. android系统移植学习笔记一
  3. android获取应用内自定义权限与权限使用
  4. 一个Demo让你掌握所有的android控件
  5. Android高效率编码-findViewById()的蜕变
  6. Android 单独抽取 WebRtc-NS/NSX(音频降噪
  7. Android(安卓)WebView 通过post形式访问
  8. 调整Android音量等级及默认音量
  9. android系统部分广播
  10. Android实现微信分享及注意事项