如何从我的应用程序以编程方式打开带有更新页面的Playstore应用程序

时间:2015-09-28 05:01:40

标签: android google-play

我正在比较Google Play商店中的应用版本和Play商店中的应用版本。因此,每当新版本的应用程序上传时,它会向用户显示对话框以更新应用程序,但是当我点击"更新按钮"在对话框中,它打开游戏商店"打开"和#34;卸载"按钮代替"更新"和#34;卸载"按钮。

所以请告诉我如何使用"更新"打开Play商店应用。和#34;卸载"在Play商店上传新版本时按钮。

这是我打开游戏商店的代码。

AlertDialog.Builder  dialogUpdate= new AlertDialog.Builder(Main_list_Activity.this,AlertDialog.THEME_TRADITIONAL).setTitle("New Version Available")
                .setIcon(getResources()

                .getDrawable(android.R.drawable.stat_sys_download))
                .setMessage("New version of app is available. Update your app")
                .setCancelable(false)
                .setNeutralButton("UPDATE", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                        try {
                            startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id="+getPackageName())));
                        } catch (ActivityNotFoundException e) {
                            // TODO: handle exception

                            startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName())));

                        }




                    }
                });

    AlertDialog updatedialog = dialogUpdate.create();

        updatedialog.show();

2 个答案:

答案 0 :(得分:1)

Google不提供任何api来获取最新版本的应用程序代码。 Google不会为此提供任何API。

尽管如此,您可以在Playstore的网络版上发出http请求(https://play.google.com/store/apps/details?id=your.namespace

要发出请求,您可以使用DefaultHttpClient

获得页面内容后,您应该解析它(jsoup是一个很好的解决方案)并搜索:

<div class="content" itemprop="softwareVersion"> 2.2.0  </div>

找到页面的这一部分后,您可以提取版本号并将其与应用中可用的版本号进行比较:

try
{
    String version = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
    if( ! version.equals(versionFromHTML))
    {
        Toast.makeText(this, "New version available on play store", Toast.LENGTH_SHORT);
    }

}
catch (NameNotFoundException e)
{
    //No version do something
}

对于HTML解析部分,请看这里

请记住,每个人都不会在同一时间看到新版本。传播可能需要一些时间(可能是因为缓存)。

答案 1 :(得分:0)

访问此链接https://developer.android.com/guide/playcore/in-app-updates,这可能会对您的查找有所帮助。如果它符合您的需求/要求,请对该线程进行投票。