Блокировать устройство Android

Я пытаюсь заблокировать устройство через программу. Но я не могу найти решение все еще. Я хочу заблокировать android froyo2.2 через программу. Я пробовал keyguardmanager и DeviceAdminManager.

Мое приложение – удаленное блокирование устройства. Когда сообщение получено с некоторыми кодовыми словами для блокировки, оно блокирует телефон. Я нашел много Api_demo в качестве решения, но я не могу извлечь код блокировки из этого и найти решение.

Класс активности должен быть внутренним classом, а class outter должен расширять 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); 

Чтобы решить эту задачу, вы можете взглянуть на исходный код NoKeyGuard и более точно на class NoKeyGuard Service и class KeyguardLockWrapper.

Чтобы разблокировать устройство, напишите код в том случае, если вы используете для разблокировки:

  Context context= getApplicationContext(); KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper"); //to disable _keyguardLock.disableKeyguard(); //to enable _keyguardLock.reenableKeyguard(); 

Класс активности должен быть внутренним classом, а внешний class должен расширять 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); 
  • Быстрый и грязный способ обеспечения одновременного запуска только одного экземпляра сценария оболочки
  • Как я могу реализовать счетчик ABA с C ++ 11 CAS?
  • Как прервать BlockingQueue, который блокирует take ()?
  • Гарантии гарантий безопасности
  • Является ли Task.Factory.StartNew () гарантией использовать другой stream, чем вызывающий stream?
  • Круглый блокировочный буфер
  • Давайте будем гением компьютера.