Как убедиться, что Android всегда включен? - PullRequest
3 голосов
/ 13 февраля 2011

У меня есть требование к проекту, которое требует, чтобы Android всегда был включен с сервисом, работающим в фоновом режиме.Хотя я могу обрабатывать сервисную часть, начиная с версии 2.2, используя START_STICKY, я не могу гарантировать, что устройство всегда включено.Или, по крайней мере, если подключенный к источнику питания должен загружаться автоматически, если он выключен.

Есть ли какое-то решение для этого в реальном мире?Кроме того, что я собираюсь сделать новую прошивку, мне нужны идеи или обходной путь.Спасибо.

ОБНОВЛЕНИЕ: Я думал, что будет лучше, яснее.В моем случае я не использую Android в качестве мобильного телефона, и не будет никакого пользователя.Его использование похоже на аппаратное оборудование под управлением Android, которое когда-то установлено с моим приложением, никто не имеет к нему доступа.И всегда подключен к электроснабжению и интернету.Также пользователь будет иметь доступ к элементам управления своего источника питания.

Я согласен, что это невозможно сделать изнутри приложения или с помощью API-интерфейсов Android.Но это проблема реального мира, и мне крайне необходимо решить ее.Любая вещь, даже не связанная с программированием, может быть механической или чем-то еще.

Ответы [ 5 ]

1 голос
/ 07 сентября 2011

Я тоже хотел сделать то же самое, но не смог найти какое-либо решение онлайн. Затем я предложил аппаратное решение, которое я описал в своем блоге здесь

Надеюсь, это поможет!

0 голосов
/ 19 декабря 2012

Я нашел приложение, которое позволяет вам загружать ваше устройство, когда оно выключено и заряжается

Приложение называется NoMoarPowah!

Itможет работать на определенных устройствах и требует рута.Вы можете загрузить свое устройство, если батарея заряжена или заряжена на 15% или имеет достаточно сока для загрузки.

Попробуйте ...

0 голосов
/ 07 сентября 2011
 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
                    | PowerManager.ACQUIRE_CAUSES_WAKEUP,
                   "Any String");
mWakeLock.acquire();
0 голосов
/ 13 февраля 2011

Я не знаю, что вы хотите сделать, но это выглядит как очень плохая идея ... Кто-нибудь немедленно удалил бы приложение, подобное этому.Если я выключаю свой телефон, я не хочу, чтобы приложение включало мой телефон, не спрашивая меня.

В любом случае это выглядит невозможным ... API Android не позволяет вам это делать.

0 голосов
/ 13 февраля 2011

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

Итак, ваше решение - отклонить это требование, потому что оно не может быть выполнено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...