我一直在尝试通过程序锁定设备,但仍然找不到解决方案。 我想通过程序锁定Android froyo2.2设备。我已经尝试了keyguardmanager和DeviceAdminManager。
我的应用是远程锁定设备。当接收到带有某些代码词的消息时,它会锁定手机。我已经找到了许多Api_demo程序作为解决方案,但无法单独提取锁定代码并找到解决方案。
我一直在尝试通过程序锁定设备,但仍然找不到解决方案。 我想通过程序锁定Android froyo2.2设备。我已经尝试了keyguardmanager和DeviceAdminManager。
我的应用是远程锁定设备。当接收到带有某些代码词的消息时,它会锁定手机。我已经找到了许多Api_demo程序作为解决方案,但无法单独提取锁定代码并找到解决方案。
Activity类应该是内部类,外部类应该扩展DeviceAdminReceiver
public class adminActivity extends DeviceAdminReceiver {
public static class Controller extends Activity {
DevicePolicyManager mDPM;
ComponentName mDeviceAdminSample;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(Controller.this,
adminActivity.class);
}
}
}
要锁定设备,请在您用于锁定的事件中编写代码。
if (active) {
mDPM.lockNow();
}
如果启用了DeviceAdmin,则手机将被锁定。 要启用设备管理员,需要调用DevicePolicyManager意图,并由用户启用它。
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
Context context= getApplicationContext();
KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper");
//to disable
_keyguardLock.disableKeyguard();
//to enable
_keyguardLock.reenableKeyguard();
DeviceAdminReceiver
。public class adminActivity extends DeviceAdminReceiver {
public static class Controller extends Activity {
DevicePolicyManager mDPM;
ComponentName mDeviceAdminSample;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(Controller.this,
adminActivity.class);
}
}
}
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 0;
getWindow().setAttributes(lp);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);