提问者:小点点

如何从Google Playstore获取最新版本的android应用程序?


问题:

我想从Google Playstore获取我的应用程序的最新版本。如果最新版本的某些更改需要,我想添加功能以强制升级。

我所拥有的:

我目前正在我的服务器上更新应用程序的最新版本,并强制应用程序请求它并根据它检查版本。这是可行的。但是我不想每次发布新版本时都在我的服务器上更新。我希望应用程序能够从谷歌游戏商店获取相同的信息。

我需要什么:

我可以在客户端(在应用程序上)处理逻辑。我所需要的只是对Playstore的API调用,以获取我自己的应用程序的最新生产版本。如果有人能帮我提供一些关于这方面的建议,那将是非常有帮助的。


共2个答案

匿名用户

您可以使用Android应用内更新检查它。Android开发指南

匿名用户

您可以实现一个技巧来获取当前Play商店版本。

public void getUpdate() {
        final String appPackageName = getPackageName();
        Document doc = null;
        try {
            doc = Jsoup.connect("https://play.google.com/store/apps/details?id=" + appPackageName).get();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // Document doc = Jsoup.parse(resString);
        if(doc!=null) {
            Element meta = doc.select("div[itemprop=softwareVersion]").first();
            String content = meta.ownText();
            System.out.println(content);
            Double playStoreVersion = Double.valueOf(content);
            Double currentVersion = getVersionName();
            if (playStoreVersion > currentVersion) {
                try {
                    new AlertDialog.Builder(SplashScreen.this)
                            .setTitle("Alert")
                            .setMessage("Update Is Available.Do You Want To Update?")
                            .setIcon(R.mipmap.ic_launcher)
                            .setCancelable(false)
                            .setPositiveButton("Update",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog,
                                                            int id) {
                                            try {
                                                startActivityForResult(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)), UPDATE_FROM_PLAY_STORE_REQUEST);

                                            } catch (Exception e) {
                                                try {
                                                    startActivityForResult(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)), UPDATE_FROM_PLAY_STORE_REQUEST);
                                                } catch (Exception e1) {

                                                }
                                            }
                                            dialog.dismiss();
                                        }
                                    }).setNegativeButton("Not yet", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            dialogInterface.dismiss();
                            Handler();

                        }
                    }).show();
                    //startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
                } catch (android.content.ActivityNotFoundException anfe) {
                    try {
                        startActivityForResult(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)), UPDATE_FROM_PLAY_STORE_REQUEST);
                    } catch (Exception e) {
                    }
                }
            } else {
                Handler();
            }
        }else {
            Handler();
        }
}

获取我们自己的应用程序的版本。

public Double getVersionName() {
    Double VersionName = 0.0;
    try {
        String vName = SplashScreen.this.getPackageManager().getPackageInfo(SplashScreen.this.getPackageName(), 0).versionName;
        VersionName = Double.valueOf(vName);

    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return VersionName;
}