如何在 Android 中以编程方式启动软件更新?
How to start software update programmatically in Android?
我需要在单击通知时开始更新 android 操作系统。
我正在使用此代码:
Intent callGPSSettingIntent =new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS);
startActivityForResult(callGPSSettingIntent,1);
但它只会将用户移动到 "About device" 部分,然后用户可以看到软件更新选项。
我的要求是更深入一步,当用户点击通知时软件更新自动开始。
从 activity 调用此函数:
openSettingsPage(this, "android.settings.SYSTEM_UPDATE_SETTINGS");
和
public void openSettingsPage(Context context, String setting) {
Intent intent = new Intent(setting, null);
final boolean isAndroidJellyBean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN
&& Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT;
if (isAndroidJellyBean || !areSettingsAvailable(context, intent)) {
intent = new Intent(Settings.ACTION_SETTINGS);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
public Boolean areSettingsAvailable(Context context, Intent intent) {
List<ResolveInfo>
activities = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return activities != null && activities.size() > 0;
}
我需要在单击通知时开始更新 android 操作系统。
我正在使用此代码:
Intent callGPSSettingIntent =new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS);
startActivityForResult(callGPSSettingIntent,1);
但它只会将用户移动到 "About device" 部分,然后用户可以看到软件更新选项。
我的要求是更深入一步,当用户点击通知时软件更新自动开始。
从 activity 调用此函数:
openSettingsPage(this, "android.settings.SYSTEM_UPDATE_SETTINGS");
和
public void openSettingsPage(Context context, String setting) {
Intent intent = new Intent(setting, null);
final boolean isAndroidJellyBean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN
&& Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT;
if (isAndroidJellyBean || !areSettingsAvailable(context, intent)) {
intent = new Intent(Settings.ACTION_SETTINGS);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
public Boolean areSettingsAvailable(Context context, Intent intent) {
List<ResolveInfo>
activities = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return activities != null && activities.size() > 0;
}