Программная проверка обновлений системы Android OTA

Если вы зайдете в Настройки-> О телефоне-> Проверить наличие обновлений, инициируется проверка, чтобы увидеть, готовы ли какие-либо обновления системы для вашего телефона.

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

1 ответ

Насколько я знаю, не существует ни одной известной трансляции, намерения или API, чтобы сделать это программно.

И это зависит от ПЗУ и производителя.

Например, Sony использует сервис, который при активации Wi-Fi проверяет серверы Sony на наличие обновлений и сообщает об этом.

Но когда я говорю об источнике AOSP, я не думаю, что это произойдет.

Ближайшая точка обновления системы находится в packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java

Подсказка: grep строка "Обновление системы" внутри res/values каталог и рабочие обратные слова и узнайте, где используется этот идентификатор строковой переменной!

Редактировать:

Вот пример приемника вещания:

public class SystemUpdateClass extends BroadcastReceiver{
   @Override
   public void onReceive(Context context, Intent intent){
      if (intent.getAction().equals("android.settings.SYSTEM_UPDATE_SETTINGS")){
           Toast.makeText(context, 
                 "Yup! Received a system update broadcast", 
                 Toast.LENGTH_SHORT).show();
      }
   }
}

Вот пример кода, из внутри деятельности onCreate:

SystemUpdateClass sysUpdate = new SystemUpdateClass();
IntentFilter filter = new IntentFilter();
filter.addAction("android.settings.SYSTEM_UPDATE_SETTINGS");
registerReceiver(sysUpdate, filter);

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

Другие вопросы по тегам