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应用程序获取系统权限
  2. Android工具之Hierarchy Viewer--分析应用程序UI布局
  3. Android应用程序中的多个Activity的显示创建和调用
  4. Android获取 应用程序大小,数据大小,缓存大小
  5. Android应用程序键盘(Keyboard)消息处理机制分析(26)
  6. android 设备开发 让应用程序出现在模拟器启动列表中
  7. Android应用程序键盘(Keyboard)消息处理机制分析(22)

随机推荐

  1. Android: activity的过渡动画
  2. Android PhotoView 使用教程
  3. Android双击
  4. android menu自定义菜单 Demo
  5. android > 屏蔽掉返回键
  6. 第一代Android壳源码--某某公司早期壳代
  7. How to fix the Android AVD no target p
  8. Android之关于Intent的Flag属性的讲解
  9. 在服务器上使用grandle打包android源码
  10. DownloadManager 文件下载