Войти
AndroidФорумОбщее

Как програмно выключить девайс?

#0
18:10, 30 июня 2013

Гуглил. везде пишут что для этого нужна либо подпись с ключом прошивки, либо нужен рут.
Так вот. Это не правда.
В гуглплее есть приложение, которое умеет выключать девайс(любой) и перезагружать(только если есть рут).
То есть явно видно, что для выключения рут не нужен. И не может приложение быть подписано под все прошивки, значит и ключ прошивки тоже не нужен.
Соответственно вопрос: как??

#1
18:22, 30 июня 2013

Я записывал способ (если не потерял еще), как можно вырубить любой девайс. Правда, особенность способа в том, что выключение происходит не всегда, а перед этим телефон будет люто, бешенно тормозить, после чего и вырубиться. Искать способ или нет?

#2
18:24, 30 июня 2013

Да, лишним не будет.
А в каких случаях не выключается?

#3
18:29, 30 июня 2013

Не помню, если честно. Вроде, всегда вырубался, просто тут дело времени - иногда минута, а иногда чуть дольше.

Тестилось на двух устройствах - оба вырубались, просто несразу. Сейчас не на работе - поэтому точно не скажу, но попробуй вот что:
1. Создаёшь ресурс в дименах. Например my_dimen со значением в 5 px.
2. Передаёшь его в xml'ке туда, где принимается просто число. Т.е. туда, где этот ресурс ни к селу, ни к городу.

Когда layout будет inflate'титься, сначала будут дикие тормоза, а потом полный отруб андроида.

#4
19:00, 30 июня 2013

Ага,нашёл тот проект. Вот как оно на самом деле:
1. Создаёшь анимацию. В анимации длительность задаёшь с помощью dimen'а:

<?xml version="1.0" encoding="utf-8"?>
<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="100%"
    android:toXDelta="0%"
    android:duration="@dimen/animation_time"/>

2. dimen animation_time , ВНЕЗАПНО, задаёшь в пикселях:
<dimen name="animation_time">10px</dimen>

3. Играешь анимацию:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    ...
    android:layoutAnimation="@anim/slide_in">

4. ...
5. Профит!

При инфлате этого layout'а будет выключение телефона.

#5
19:03, 30 июня 2013

Интересный хак. :)
Попробую, спасибо.

#6
19:09, 30 июня 2013

Не за что :)
Потом скажи, хоть, помогло или нет. У нас просто довольно странно эта штука работала: телефон начинает виснуть и вырубаться только тогда, когда с ним начинаешь взаимодействовать. Т.е., грубо говоря, лежит телефон в таком состоянии, никто его не трогает, минут 5. Потмо его взяли - он начал виснуть. А если взять сразу - то и виснуть будет сразу.

#7
22:57, 30 июня 2013

Решил проблему надежнее. Ставлю с гуглплея приложения и просто вызываю его intent в нужный момент. А это приложение уже само глушит девайс.
Конечно вариант не очень, но мне кажется это всеже лучше, чем убивать операционку не корректными запросами.

#8
0:28, 1 июля 2013

Есть уверенность, что запросы этого приложения - надежны?

#9
10:38, 1 июля 2013

А http://developer.android.com/reference/android/os/PowerManager.html
reboot метод не работает? там есть приписка что "reason  - code to pass to the kernel (e.g., "recovery") to request special boot modes, or null." может таки тут покопаться?

AndroidФорумОбщее

Тема в архиве.