從Android 2.2開始,加入了一個新的鎖屏API 位於android.app.admin.DevicePolicyManager 包,DevicePolicyManager類的lockNow方法可以鎖住屏幕,查看Android源代碼發現其實是從IDevicePolicyManager實現的,整個AIDL接口 調用代碼爲:
- private final IDevicePolicyManager mService;
- mService = IDevicePolicyManager.Stub.asInterface(
- ServiceManager.getService(Context.DEVICE_POLICY_SERVICE));
- if (mService != null) {
- try {
- mService.lockNow();
- } catch (RemoteException e) {
- Log.w(TAG, "Failed talking with device policy service", e);
- }
- }
這裏 Android123提示大家傳統的方法加入<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses- permission>權限,使用下面代碼可以鎖住鍵盤,但屏幕不行
- KeyguardManager km = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
- KeyguardLock kl= km.newKeyguardLock(KEYGUARD_SERVICE);
- kl.reenableKeyguard();