KeyguardManager.java revision 9567a66a5e6f49dd8495fb5f6e2efb9f32e84b35
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.app; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.RemoteException; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ServiceManager; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IWindowManager; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IOnKeyguardExitResult; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Class that can be used to lock and unlock the keyboard. Get an instance of this 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * class by calling {@link android.content.Context#getSystemService(java.lang.String)} 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * with argument {@link android.content.Context#KEYGUARD_SERVICE}. The 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Actual class to control the keyboard locking is 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.KeyguardManager.KeyguardLock}. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class KeyguardManager { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private IWindowManager mWM; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 389567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD} 399567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED} 409567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * instead; this allows you to seamlessly hide the keyguard as your application 419567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * moves in and out of the foreground and does not require that any special 429567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * permissions be requested. 439567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Handle returned by {@link KeyguardManager#newKeyguardLock} that allows 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you to disable / reenable the keyguard. 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public class KeyguardLock { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private IBinder mToken = new Binder(); 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mTag; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project KeyguardLock(String tag) { 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mTag = tag; 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disable the keyguard from showing. If the keyguard is currently 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * showing, hide it. The keyguard will be prevented from showing again 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * until {@link #reenableKeyguard()} is called. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A good place to call this is from {@link android.app.Activity#onResume()} 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 62cb52cb52253c3832ccc7f5f1dbb4d8a0bd8178c0Jim Miller * Note: This call has no effect while any {@link android.app.admin.DevicePolicyManager} 63cb52cb52253c3832ccc7f5f1dbb4d8a0bd8178c0Jim Miller * is enabled that requires a password. 64d6b5705e188e55a3b9dbb07954b16564b1a31b9fJim Miller * 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #reenableKeyguard() 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void disableKeyguard() { 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mWM.disableKeyguard(mToken, mTag); 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reenable the keyguard. The keyguard will reappear if the previous 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * call to {@link #disableKeyguard()} caused it it to be hidden. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 78d6b5705e188e55a3b9dbb07954b16564b1a31b9fJim Miller * A good place to call this is from {@link android.app.Activity#onPause()} 79d6b5705e188e55a3b9dbb07954b16564b1a31b9fJim Miller * 80cb52cb52253c3832ccc7f5f1dbb4d8a0bd8178c0Jim Miller * Note: This call has no effect while any {@link android.app.admin.DevicePolicyManager} 81cb52cb52253c3832ccc7f5f1dbb4d8a0bd8178c0Jim Miller * is enabled that requires a password. 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #disableKeyguard() 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void reenableKeyguard() { 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mWM.reenableKeyguard(mToken); 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Callback passed to {@link KeyguardManager#exitKeyguardSecurely} to notify 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * caller of result. 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public interface OnKeyguardExitResult { 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param success True if the user was able to authenticate, false if 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not. 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void onKeyguardExitResult(boolean success); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project KeyguardManager() { 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mWM = IWindowManager.Stub.asInterface(ServiceManager.getService(Context.WINDOW_SERVICE)); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1129567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD} 1139567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED} 1149567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * instead; this allows you to seamlessly hide the keyguard as your application 1159567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * moves in and out of the foreground and does not require that any special 1169567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * permissions be requested. 1179567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enables you to lock or unlock the keyboard. Get an instance of this class by 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * calling {@link android.content.Context#getSystemService(java.lang.String) Context.getSystemService()}. 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This class is wrapped by {@link android.app.KeyguardManager KeyguardManager}. 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tag A tag that informally identifies who you are (for debugging who 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is disabling he keyguard). 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A {@link KeyguardLock} handle to use to disable and reenable the 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * keyguard. 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1279567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn @Deprecated 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public KeyguardLock newKeyguardLock(String tag) { 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new KeyguardLock(tag); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 133520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * isKeyguardLocked 134520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * 135520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * Return whether the keyguard is currently locked. 136520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * 137520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * @return true if in keyguard is locked. 138520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * 139520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * @hide 140520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood */ 141520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood public boolean isKeyguardLocked() { 142520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood try { 143505312482782a600e997c91712f03f83c7a70428Mike Lockwood return mWM.isKeyguardLocked(); 144520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood } catch (RemoteException ex) { 145520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood return false; 146520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood } 147520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood } 148520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood 149520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood /** 150520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * isKeyguardSecure 151520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * 152520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * Return whether the keyguard requires a password to unlock. 153520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * 154520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * @return true if in keyguard is secure. 155520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * 156520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood * @hide 157520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood */ 158520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood public boolean isKeyguardSecure() { 159520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood try { 160520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood return mWM.isKeyguardSecure(); 161520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood } catch (RemoteException ex) { 162520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood return false; 163520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood } 164520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood } 165520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood 166520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood /** 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If keyguard screen is showing or in restricted key input mode (i.e. in 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * keyguard password emergency screen). When in such mode, certain keys, 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * such as the Home key and the right soft keys, don't work. 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if in keyguard restricted input mode. 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.view.WindowManagerPolicy#inKeyguardRestrictedKeyInputMode 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean inKeyguardRestrictedInputMode() { 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mWM.inKeyguardRestrictedInputMode(); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1849567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD} 1859567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED} 1869567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * instead; this allows you to seamlessly hide the keyguard as your application 1879567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * moves in and out of the foreground and does not require that any special 1889567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * permissions be requested. 1899567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn * 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Exit the keyguard securely. The use case for this api is that, after 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * disabling the keyguard, your app, which was granted permission to 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * disable the keyguard and show a limited amount of information deemed 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * safe without the user getting past the keyguard, needs to navigate to 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * something that is not safe to view without getting past the keyguard. 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This will, if the keyguard is secure, bring up the unlock screen of 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the keyguard. 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param callback Let's you know whether the operation was succesful and 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it is safe to launch anything that would normally be considered safe 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * once the user has gotten past the keyguard. 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2039567a66a5e6f49dd8495fb5f6e2efb9f32e84b35Dianne Hackborn @Deprecated 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void exitKeyguardSecurely(final OnKeyguardExitResult callback) { 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mWM.exitKeyguardSecurely(new IOnKeyguardExitResult.Stub() { 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void onKeyguardExitResult(boolean success) throws RemoteException { 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project callback.onKeyguardExitResult(success); 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException e) { 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 216