2012-01-04 4 views
0

С уровня API 8 PowerManager has contained a reboot().Могу ли мое приложение Android использовать метод перезагрузки PowerManager?

Я добавил необходимые разрешения на мой манифест, приобретенный объект PowerManager и вызвать

pm.reboot(); 

Это приводит к силе близко с этой трассировки стека

01-04 16:58 : 35.847: ERROR/AndroidRuntime (2945): java.lang.SecurityException: ни пользователь 10060, ни текущий процесс не имеет android.permission.REBOOT.

Кто-нибудь знает, должен ли этот метод PowerManager.reboot() быть доступным для приложений? Поскольку в документации я догадывался, что это нормально использовать.

ответ

3

Кто-нибудь знает, должен ли этот метод PowerManager.reboot() быть доступным для приложений?

SDK-приложения, которые установлены на системный раздел как часть прошивки, могут содержать разрешение REBOOT. Обычные приложения SDK не могут.

+0

Есть ли удобное место для поиска, какие части API-интерфейсов доступны для стандартных приложений? В документах разработчика не упоминается, что это система только по методу или разрешению. Такой список действительно поможет избежать некоторых проб и ошибок, связанных с изучением некоторых API-интерфейсов. – FoamyGuy

+2

@Tim: документация, как правило, довольно хороша в отношении того, какие разрешения необходимы для выполнения определенных операций. В документации нет описания того, что требуется для хранения разрешения. Для этого вам нужно изучить «frameworks/base/core/res/AndroidManifest.xml» в исходном коде. Каждое разрешение указано там с атрибутом 'android: protectionLevel'. 'подпись' означает, что приложение должно быть подписано с помощью ключа подписи прошивки. 'signatureOrSystem' также позволяет приложению нормально подписываться, но находиться в'/mnt/system'. Любое приложение может содержать «нормальные» и «опасные». – CommonsWare

+1

Отлично, спасибо. – FoamyGuy

 Смежные вопросы

  • Нет связанных вопросов^_^