DevicePolicyManager deviceManger;
ActivityManager activityManager;
ComponentName compName;
中的onCreate()添加代码
deviceManger = (DevicePolicyManager)getSystemService(
Context.DEVICE_POLICY_SERVICE);
activityManager = (ActivityManager)getSystemService(
Context.ACTIVITY_SERVICE);
compName = new ComponentName(this, DeviceAdminLock.class);
清单文件中添加代码
<receiver android:name=".DeviceAdminLock"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
在res/xml中创建一个xml资源文件,名称为device_admin_sample.xml,并添加以下内容 -
个
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
添加权限清单文件 -
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
创建延伸DeviceAdminReceiver类一个接收器类。
public class DeviceAdminLock extends DeviceAdminReceiver {
@Override
public void onEnabled(Context context, Intent intent) {
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
return "This is an optional message to warn the user about disabling.";
}
@Override
public void onDisabled(Context context, Intent intent) {
}
@Override
public void onPasswordChanged(Context context, Intent intent) {
}
@Override
public void onPasswordFailed(Context context, Intent intent) {
}
@Override
public void onPasswordSucceeded(Context context, Intent intent) {
}
}
问活动类激活锁定权限
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,compName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"Additional text explaining why this needs to be added.");
startActivityForResult(intent, 1);
检查许可被给予或不
boolean active = deviceManger.isAdminActive(compName);
if (active) {
// if available then lock
deviceManger.lockNow();
}
解锁装置
deviceManger.removeActiveAdmin(compName);
解锁
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
final KeyguardManager.KeyguardLock kl = km .newKeyguardLock("MyKeyguardLock");
kl.disableKeyguard();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
wakeLock.acquire();
解答了你尝试哪那么我们不知道的建议呢? – CodingIntrigue
“没有人在工作”对您的症状没有用处。请完整,准确地解释*您尝试了什么以及遇到了什么问题。 – CommonsWare
@BladeOrz:我添加了一些访问过的页面链接 –