以编程方式检查Android OTA系统更新

Com*_*g88 5 android ota

如果您转到设置 - >关于电话 - >检查更新,则会启动检查以查看是否已为您的电话准备好任何系统更新.

如何以编程方式执行此操作?此外,我试图找到Android源代码中的这个位置,以便我可以完全看到它并更好地理解它.有没有人有什么建议?

t0m*_*13b 7

据我所知,没有已知的广播,意图或API以编程方式执行此操作.

这取决于ROM和制造商.

例如索尼使用的服务是,当wifi被激活时,服务会检查索尼服务器上的任何更新并通知它.

但在谈论AOSP源时,我认为不会发生.

系统更新的最近点位于packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java

Protip:grep目录中的字符串"System update" 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();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

这是一个示例代码,来自一个活动onCreate:

SystemUpdateClass sysUpdate = new SystemUpdateClass();
IntentFilter filter = new IntentFilter();
filter.addAction("android.settings.SYSTEM_UPDATE_SETTINGS");
registerReceiver(sysUpdate, filter);
Run Code Online (Sandbox Code Playgroud)

现在,应该发生的是你的应用程序应该收到广播,除非我错误地认为广播仅适用于系统签名的应用程序......但其余部分留作练习:)