【问题标题】:Android Application will auto update when a new version is released on play store当 Play 商店发布新版本时,Android 应用程序将自动更新
【发布时间】:2020-06-10 06:01:22
【问题描述】:

我在 Play 商店中更新了我的应用程序的新版本。想要在已经安装了应用程序的手机中进行自动更新。我做了这项工作。

dependencies {
    compile 'org.jsoup:jsoup:1.10.2'
}

MainActivity 我做了这项工作-

 public class MainActivity extends AppCompatActivity {

    String newVersion;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new FetchAppVersionFromGooglePlayStore().execute();
    }

    class FetchAppVersionFromGooglePlayStore extends AsyncTask<String, Void, String> {

        protected String doInBackground(String... urls) {
            try {
                return
                        Jsoup.connect("https://play.google.com/store/apps/details?id=" + "com.directed.android.smartstart" + "&hl=en")
                        .timeout(10000)
                        .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                        .referrer("http://www.google.com")
                        .get()
                        .select("div[itemprop=softwareVersion]")
                        .first()
                        .ownText();

            } catch (Exception e) {
                return "";
            }
        }

        protected void onPostExecute(String string) {
            newVersion = string;
            Log.d("new Version", newVersion);
        }
    }
}

但是,仍然无法正常工作。我该如何解决这个问题?

【问题讨论】:

  • 你应该把它留给用户,不管他们是否想要应用程序的自动更新。像你想要的那样强制更新你的用户是不好的。
  • 但是,用户如何知道 Play 商店有新版本可用?应用程序会自动通知用户而不在我的 android 代码中做任何工作吗?
  • @ImtiazRiad 是的。 Google Play 商店(以及亚马逊、华为、三星 Galary 等其他商店)在特定时间段(数小时或数天)内向所有用户推出更新。如果用户为其所有应用启用了自动更新,则应用会自动更新。否则,他们会收到类似“XX 应用程序已准备好更新”的通知。
  • 太棒了。谢谢你通知我。我不知道。

标签: java android google-play


【解决方案1】:

我相信您想要的是支持应用内更新。正如official docs 所述,应用内更新会向用户显示一个对话框,以防有更新可用,并且用户可以选择是否要更新它。

看起来是这样的:

我个人觉得这很好,因为作为一名 Android 开发人员,考虑到隐私和安全问题,我希望我的用户保持最新状态。并且它不会强制用户更新维护 UX。

这样您就不必弄乱 JSOUP,因为它可以与内置的 AppUpdateManager 一起使用。 你应该在official docs : Support in-app updates 上阅读它。

编辑:您可以进一步设置和检查更新优先级,评估更新的严重性是否有必要。正如官方文件所述:

Google Play Developer API 允许您设置每次更新的优先级。这允许您的应用决定向用户推荐更新的强度。例如,考虑以下设置更新优先级的策略:

小的 UI 改进: 低优先级更新;要求既不灵活 也没有立即更新。

性能改进:中优先级 更新;请求灵活更新。

关键安全更新:高优先级更新;需要立即更新。

为了确定优先级,Google Play 使用 0 到 5 之间的整数值,其中 > 0 是默认值,5 是最高优先级。设置 更新的优先级,使用 inAppUpdatePriority 下的字段 Google Play 开发者 API 中的 Edits.tracks.releases。优先可以 仅在推出新版本时设置,不能更改 稍后。

优先级是相关的,因为它会改变用户可见的更新对话框的频率,因为每次小更新都会打扰用户进行更新,这不是一个好的用户体验。

【讨论】:

  • 你能帮我在哪里设置这个inAppUpdatePriority优先级。因为我找不到从应用程序端设置它的任何方法。
  • @HarshadPrajapati 看看these answers。您也可以查看this thread 以获得一些解决方案。目前只能通过 API 完成。从应用端,this library可以提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
相关资源
最近更新 更多