以编程方式从 Google play 触发应用程序更新

Programmatically trigger app update from Google play

  1. 在 Google play 开发者控制台中提交应用更新并且所有用户都可以看到该应用后,任何设备需要多长时间才能选择更新? (假设全天有效的互联网 wifi 连接并且此应用程序已启用自动更新)

  2. 我是否可以在没有任何用户提示或任何交互的情况下以编程方式向 Google Play 商店发起关于更新的请求? (假设更新时没有请求新的权限)。如果是这样,请建议如何。

其他信息:我的应用专为使用 android 盒子的数字标牌而设计。应用程序在启动时启动,占据屏幕。在其生命周期内不会有任何类型的用户直接与应用程序交互。

  1. 这取决于 Google 的后端复制您的新更新,通常在 8-24 小时内。
  2. 不,那将是一个安全漏洞。不允许应用在没有用户交互的情况下自行安装或更新。

我已经经历过很多次了。

1> 在 google 播放时,我通常需要大约 2 - 4 小时才能更新我的应用程序。

2> 我认为您是在谈论强制更新。我为此所做的是 我做了一个 api 来检查应用程序的版本。根据它,我重定向到 google play 中的更新屏幕。希望对你有帮助。

// Here min_supported_version is generated from api
    if (min_supported_version <= BuildConfig.VERSION_CODE) {
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=yourpackagename")));
}
  1. 通常会在 24 小时内安装更新,前提是用户保持与互联网的有效连接和充足的电池。 Android 盒子没有电池,因此通过 google 播放(无需任何用户交互)自动更新不可靠。

  2. 使用此代码在没有 Playstore 的情况下发布自动更新。

添加此权限:<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />

使用以下函数:

public static void installAPK(String filename) {
    File file = new File(filename);
    if (file.exists()) {
            Runtime.getRuntime().exec("chmod 777 " + filename);
            String command;
            command = "pm install -r " + filename;
            Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command});
            proc.waitFor();
        }
}

注意:仅当您自上次安装后没有为该应用程序请求任何额外权限时,这才有效。