У меня есть система безопасности в школах, где мои планшеты являются консолями для каждого класса. Я заметил, что учителя и администратор не перезагружают планшеты очень часто (или никогда), что вызывает проблемы. Я хотел бы взять задачу от клиентов и запрограммировать еженедельную перезагрузку или выключение. Я сделал несколько шагов в правильном направлении:
У меня есть:
- Разговор с провайдером / провайдером планшетов, и они добавили мое приложение в качестве привилегированного приложения.
- Добавлен белый список для (как мне кажется,) всех необходимых разрешений.
- Подтверждение наличия прав.
Код для проверки разрешений:
public void getGrantedPermissions(final String appPackage) {
List<String> granted = new ArrayList<String>();
try {
PackageInfo pi = getPackageManager().getPackageInfo(appPackage, PackageManager.GET_PERMISSIONS);
for (int i = 0; i < pi.requestedPermissions.length; i++) {
if ((pi.requestedPermissionsFlags[i] & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0) {
granted.add(pi.requestedPermissions[i]);
}
}
} catch (Exception e) {}
for(int i = 0; i < granted.size(); i++){
Log.e("Permissions", granted.get(i));
}
}
Ниже сообщается в журнале. Зеленые разрешения - это все, что я мог получить на своем личном телефоне. Желтые разрешения - это то, что я смог получить, кроме того, из белого списка провайдера планшета. Этими разрешениями мы можем подтвердить, что у меня есть привилегированное приложение, а также разрешения на отключение и перезагрузку.
Мне удалось найти раздел кода для закрытия приложения, но, похоже, я не могу понять, как его использовать. Ниже приведен код, который я пробовал, и ошибка следует:
Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
intent.putExtra("android.intent.extra.KEY_CONFIRM", false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Ошибка при запуске кода:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.ACTION_REQUEST_SHUTDOWN flg=0x10000000 (has extras) }
"Это исключение выдается, когда вызывается Context # startActivity или один его вариантов не удается, потому что не удается найти действие для выполнения данного намерения. "
Я предполагаю, что это может потребовать от меня изменить мой манифест. xml, это правильно? Если это так, я не уверен, как это сделать. Я чувствую, что мне, возможно, придется добавить к моей основной деятельности, где сделан звонок. Однако я попробовал это, и это не сработало, или я написал код неправильно.
Заранее благодарю за любую помощь!