2014-12-18 3 views
0

Я пытаюсь зарегистрировать BroadcastReceiver для действия BOOT_COMPLETED. Для этого я использую тег receiver внутри файла манифеста.Регистрация получателя без выполнения заявки

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

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

+0

Если это в манифесте, он должен быть зарегистрирован момент, когда он установлен и активен при следующей перезагрузке. Можете ли вы подтвердить, что это ** не работает? – 323go

+3

@ 323go до тех пор, пока не будет выполнено действие. Его проверка безопасности с помощью установленных на Android приложений не будет включать никаких сервисов или приемников, пока приложение не выполнит действие. Моя ставка заключается в том, что она применима и к новым обновлениям, но я не могу подтвердить. через тестирование. –

+0

Ну, единственное, что я могу подтвердить, это то, что он не работает с помощью adb для установки новой версии ... Я не знаю, должна ли быть какая-либо разница, когда она обновляется из AppStore. Кроме того, как вы знаете, что это работает? Существует ли какая-либо спецификация того, когда регистрируются эти приемники? Потому что я думаю, что они могут быть зарегистрированы, когда приложение выполнено. –

ответ

0

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

Так что это не будет работать:

adb shell am broadcast -a com.obaied.myapplication.TEST_ACTION 

Но это будет работать

adb shell am broadcast -a com.obaied.myapplication.TEST_ACTION -n com.obaied.myapplication/.TestReceiver 

тестировал на Android API 25.

+0

То, что я спрашивал, было о приложении, установленном на устройстве из AppStore от пользователя, а не в приложении, установленном на моих устройствах разработки, где у меня есть доступ к работающим командам. –

+0

Тогда моя ошибка. Я, должно быть, неправильно понял. – Solidak