Получите разрешение закрытия или перезапуска в андроиде

Я создаю функцию закрытия/перезапуска.

    Intent intent = new Intent();  
    intent.setAction("android.intent.action.ACTION_SHUTDOWN");  
    sendBroadcast(intent); 

В xml:




Но у этого есть эта ошибка в пользовательском разрешении: разрешение только предоставляют системным приложениям .

Какая-либо идея?

2
добавлено отредактировано
Просмотры: 1
de

4 ответы

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

6
добавлено
@StephenM Это требует обычаю Android, строят содержащий Приложение как системное приложение.
добавлено автор Henry, источник
Это верно, но не очень полезно. Как каждый идет о получении такого разрешения? Это было бы полезно, строя приложения COSU, например.
добавлено автор Stephen M, источник

Нормальные заявления SDK не могут заставить телефоны закрывать или перезагружать. Только заявления, которые являются частью встроенного микропрограммного обеспечения (т.е., подписанные встроенным микропрограммным обеспечением сининский ключ) могут держать верные полномочия и выполнить те действия.

В документах android SDK ясно указано, что ACTION_SHUTDOWN и ACTION_REBOOT являются защищенными намерениями, которые может только послать система". У вас нет привилегии использовать это намерение перезагрузить устройство из соображения безопасности.

3
добавлено

Если ваше устройство внедряется, можно использовать этот код для закрытия

Java.Lang.Runtime.GetRuntime().Exec(new String[] { "/system/xbin/su", "-c", "reboot -p" });

и используйте этот код для Перезагрузки

Java.Lang.Runtime.GetRuntime().Exec(new String[] { "/system/xbin/su", "-c", "reboot now" });

Я использую это на Xamarin. Android

0
добавлено

В моем случае я хочу запустить свое приложение на мобильном выключателе на и установить его статус по выключенному мобильному телефону, Таким образом, для этого я использую таким образом

 
        
            
            
        
        
            
        
        
            
        
     

и в моем WifiNotification я сделал::

public void onReceive(Context context, Intent intent) {

   if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)
   {.
    .
    .
    }
    else if(intent.getAction().equalsIgnoreCase(Intent.ACTION_SHUTDOWN))
    {.
    .
    .
    }
}

Одно из разрешения::


0
добавлено
Спасибо за ссылку разрешения. Документация Android для Намерение. ACTION_SHUTDOWN doesn' t упоминают его по некоторым причинам...
добавлено автор Jakob, источник