如果您转到“设置” - >“关于电话” - >“检查更新”,系统会启动检查,以查看是否为您的手机准备了任何系统更新。
如何以编程方式执行此操作?此外,我试图找到Android源代码中的这个位置,以便我可以完全看到它并更好地理解它。有没有人有任何建议?
答案 0 :(得分:7)
据我所知,没有已知的广播,意图或API以编程方式执行此操作。
这取决于ROM和制造商。
例如索尼使用的服务是,当wifi被激活时,服务会检查索尼服务器上的任何更新并通知它。但在谈论AOSP来源时,我认为不会发生。
系统更新的最近点位于packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java
Protip :grep res/values
目录中的字符串“System update”并使用后缀并查找该字符串变量标识符的使用位置!
修改强> 的
这是一个示例广播接收器:
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);
现在,应该发生的事情是你的应用应该接收广播,除非我错误地认为广播仅适用于系统签名的应用......但其余部分留作练习:)