【问题标题】:How to start software update programmatically in Android?如何在 Android 中以编程方式启动软件更新?
【发布时间】:2015-03-16 06:23:41
【问题描述】:

我需要在点击通知时开始更新安卓操作系统。
我正在使用此代码:

Intent callGPSSettingIntent =new Intent(android.provider.Settings.ACTION_DEVICE_INFO_SETTINGS);
        startActivityForResult(callGPSSettingIntent,1);

但它只会将用户移动到“关于设备”部分,然后用户可以看到软件更新选项。

我的要求是更深入一步,当用户点击通知时自动开始软件更新。

【问题讨论】:

  • Android 不允许你直接开始更新的权限
  • 还有其他方法吗?系统app能有这种权限吗?
  • 一种解决方法是在开始活动后发送按键或触摸事件。没有尝试它是否适用于Android应用程序。这三个命令inputsendeventgetevent

标签: android performance android-layout android-intent android-activity


【解决方案1】:

从活动中调用这个函数:

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多