Java 当play store上发布新版本时,Android应用程序将自动更新

Java 当play store上发布新版本时,Android应用程序将自动更新,java,android,google-play,Java,Android,Google Play,我在play store中更新应用程序的新版本。希望在已安装应用程序的手机中进行自动更新。我做了这项工作 dependencies { compile 'org.jsoup:jsoup:1.10.2' } 在main活动中我做了这项工作- public class MainActivity extends AppCompatActivity { String newVersion; @Override protected void onCreate(Bun

我在play store中更新应用程序的新版本。希望在已安装应用程序的手机中进行自动更新。我做了这项工作

dependencies {
    compile 'org.jsoup:jsoup:1.10.2'
}
main活动中
我做了这项工作-

 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);
        }
    }
}
public类MainActivity扩展了AppCompatActivity{
字符串新版本;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新的FetchAppVersionFromGooglePlayStore().execute();
}
类FetchAppVersionFromGooglePlayStore扩展异步任务{
受保护的字符串doInBackground(字符串…URL){
试一试{
返回
Jsoup.connect(“https://play.google.com/store/apps/details?id=“+”com.directed.android.smartstart“+”&hl=en”)
.超时(10000)
.userAgent(“Mozilla/5.0(Windows;U;WindowsNT 5.1;en-US;rv1.8.1.6)Gecko/20070725 Firefox/2.0.0.6”)
.推荐人(”http://www.google.com")
.get()
.选择(“div[itemprop=softwareVersion]”)
.first()
.ownText();
}捕获(例外e){
返回“”;
}
}
受保护的void onPostExecute(字符串){
newVersion=字符串;
Log.d(“新版本”,新版本);
}
}
}

但是,仍然不起作用。如何解决此问题?

我相信您希望的是支持应用程序内更新。如前所述,应用内更新会向用户显示一个对话框,以防更新可用,并且用户可以选择是否要更新

这就是它的样子:

我个人觉得这很好,因为作为一名android开发者,我希望我的用户考虑到隐私和安全问题保持更新。而且它不强制用户更新和维护用户体验

这样,您就不必在JSOUP与内置的
AppUpdateManager
一起工作时干扰它。 你应该在报纸上读一读

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

GooglePlayDeveloperAPI允许您设置每个更新的优先级。这允许您的应用程序决定向用户推荐更新的力度。例如,考虑以下设置更新优先级的策略:

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

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

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

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


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

无论用户是否希望应用程序自动更新,您都应该将其留给用户。像您希望的那样,强制用户更新并不好。但是,用户如何知道play store上有新版本?应用程序是否会自动通知用户,而无需在我的android代码中执行任何操作?@ImtiazRiad是。谷歌Play商店(以及亚马逊、华为、三星Galary等afaik其他商店)在特定时间段(数小时或数天)向所有用户发布更新。如果用户为其所有应用启用了自动更新,则应用将自动更新。否则他们会收到一条通知,上面写着“XX应用程序已准备好更新”。太好了。谢谢你通知我。我不知道。你能帮我在哪里设置这个
inAppUpdatePriority
优先级吗。因为我找不到任何方法从应用程序端设置它。@HarshadPrajapati看。您还可以查看一些解决方案。目前只能通过API完成。从应用方面来说,我能帮上忙吗好的,谢谢,我会的。