<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> KeyguardManager mKeyGuardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE); KeyguardLock mLock = mKeyGuardManager.newKeyguardLock("本身Activity名字"); mLock.disableKeyguard();
/* * 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(); } }
僅對Rexsee的源碼和函數事件作了整理,相關的demo或源碼解析能夠在Rexsee社區瞭解,目前Rexsee已提供了近2000個擴展,覆蓋Android原生功能超過90%,且所有開放: http://www.rexsee.com/