говорит, что только экран можно заблокировать. Реально нет такого сервиса? Это связано с безопасностью? Или все таки возможно?
// Get the device policy manager DevicePolicyManager mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); // Check if your app has been granted device admin privileges ComponentName mAdminComponentName = new ComponentName(this, DeviceAdminReceiver.class); if (mDPM.isAdminActive(mAdminComponentName)) { // If yes, then prompt the user for confirmation before turning off the device AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Are you sure you want to turn off the device?"); builder.setCancelable(false); builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { // Turn off the device mDPM.lockNow(); } }); builder.setNegativeButton("No", null); builder.show(); } else { // If no, then ask the user to grant device admin privileges to your app Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminComponentName); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "This app requires device admin privileges to turn off the device."); startActivity(intent); }
Для этого нужно разрешение android.permission.SHUTDOWN, а оно доступно только системным приложениям, по понятным причинам.
я правильно понимаю, что для того, чтобы сделать системное приложение, нужно получить рут у телефона?
сейчас попробовал через эмулятор терминала запустить reboot - рут прав не требовало, и телефон перезагрузился....
дайте знать, если на реальном устройстве сработает
Обсуждают сегодня