Блокировать устройство Android
Я пытаюсь заблокировать устройство через программу. Но я не могу найти решение все еще. Я хочу заблокировать android froyo2.2 через программу. Я пробовал keyguardmanager и DeviceAdminManager.
Мое приложение – удаленное блокирование устройства. Когда сообщение получено с некоторыми кодовыми словами для блокировки, оно блокирует телефон. Я нашел много Api_demo в качестве решения, но я не могу извлечь код блокировки из этого и найти решение.
- Каковы различия между различными параметрами синхронизации streamов в C #?
- Рекурсивная блокировка (Mutex) против нерекурсивной блокировки (Mutex)
- Очередь запросов сеанса ASP.net
- Что такое блокировка и концепция Re-entrant в целом?
- Разработка пользовательского экрана блокировки
- Блокировка ориентации экрана
- Не могли бы вы объяснить порядок блокировки?
- Как отключить домашние и другие системные кнопки в Android?
- Портативная библиотека сравнения и свопинга (атомарные операции) C / C ++?
- Летучие против блокировки против блокировки
- Как отображать активность, когда экран заблокирован?
- Как я могу прервать метод acceptSetServerSocket?
- В чем разница между «закрытием» и «лямбдой»?
Класс активности должен быть внутренним 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);