1.首先需要创建一个广播接收者,继承DeviceAdminReceiver,无需重写任何实现;
public class LockReceiver extends DeviceAdminReceiver {
}
当然,广播接收者要注册
<!-- 设备管理 -->
<receiver android:name=".LockReceiver"
android:label="@string/app_name"
android:description="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/lock_screen" />
<intent-filter>
<action
android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
里面引入了 lock_screen.xml ,要在res目录新建xml目录,然后新建 res/xml/lock_screen.xml
<device-admin xmlns:android="http://schemas.android.com/apk/res/android" >
<uses-policies>
<!-- 锁定屏幕 -->
<force-lock />
</uses-policies>
</device-admin>
当然,用系统管理员还可以做更多的其他配置,这里我们只用到了锁屏比如:
<?xml version="1.0" encoding="UTF-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<!-- 强行锁定 在里仅这个是需要的-->
<force-lock />
<!-- 清除所有数据(恢复出厂设置) -->
<wipe-data />
<!-- 重置密码 -->
<reset-password />
<!-- 限制密码选择 -->
<limit-password />
<!-- 监控登录尝试 -->
<watch-login />
</uses-policies>
</device-admin>
3.通过设备管理器赋予超级管理员权限并进行锁屏
public class MainActivity extends Activity {
private DevicePolicyManager mDevicePolicyManager;
private ComponentName mComponentName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//获取设备管理器
mDevicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mComponentName = new ComponentName(this, LockReceiver.class);
// 判断该组件是否有系统管理员的权限
if (mDevicePolicyManager.isAdminActive(mComponentName)) {
mDevicePolicyManager.lockNow(); //锁屏
//结束进程
finish();
android.os.Process.killProcess(android.os.Process.myPid());
} else {
activeManager();//激活权限
}
}
/**
* 激活设备管理器获取权限
*/
private void activeManager() {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "一键锁屏");
startActivity(intent);
}
}
这样就ok了,再送一个icon