实现原理:当按锁屏键时,会发出一个广播,当界面接收到一个广播就可以实现锁频。我们可以调用IDevicePolicyManager服务中的lockNow方法来发送一个广播实现锁屏。IDevicePolicyManager是被系统隐藏掉的,需要通过反射还获取此服务。 步骤:1.创建MyAdmin的广播接收者继承DeviceAdminReceiver2.通过反射 ,获取IDevicePolicyManager服务 ,IDevicePolicyManager通过AIDL来获取出来。3.注册广播接收者为admin设备4.获取服务中的方法效果图:
注册MyAdmin广播接收者:- <receiver Android:name=".MyAdmin">
- <meta-data android:name="android.app.device_admin"
- android:resource="@xml/my_admin" />
- <intent-filter>
- <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
- </intent-filter>
- </receiver>
my_admin.xml:- <?xml version="1.0" encoding="utf-8"?>
- <device-admin xmlns:android="http://schemas.android.com/apk/res/android">
- <uses-policies>
- <limit-password />
- <watch-login />
- <reset-password />
- <force-lock />
- <wipe-data />
- </uses-policies>
- </device-admin>