Facebook Messenger имеет приоритет 2147483647
для своего приемника вещания android.provider.Telephony.SMS_RECEIVED
, объявленного в их манифесте.
(Печально, что мы вынуждены не следовать стандартам документации с максимальным приоритетом 1000, потому что другие приложения создают свои собственные правила)
Я понимаю, что если мой приоритет также установлен на смехотворно высокий уровень 2147483647
, который я должен был бы установить, чтобы приложение было первым, чтобы иметь приоритет над любыми "связями". Нет проблем, я сделал экран, чтобы предупредить пользователей о том, какие приложения, вероятно, нужно будет удалить, а затем повторно установить после того, как мое приложение будет функционировать должным образом.
Но здесь проблема: все работает нормально, но как только телефон перезагружается, "Messenger" начинает получать приоритет над моим приложением. Я повсюду посмотрел, как они могут сделать эту черную магию. Как они это делают? Как получить приоритет после перезагрузки, когда мое приложение установлено первым?
Единственное, что дошло до сих пор, - это имена пакетов, которые упорядочиваются в алфавитном порядке при загрузке при регистрации широковещательных приемников.
ком. f acebook > com. s trikeforcezero
Я собирался попытаться зарегистрировать свой вещательный приемник на android.intent.action.BOOT_COMPLETED
, но у меня такое чувство, что это не сработает.
У Messenger также есть другой "приемник с низким приоритетом вещания" для android.provider.Telephony.SMS_RECEIVED
, установленный на -1