Android 通知/提示用户新版本可用

Android 通知/提示用户新版本可用,android,webview,android-webview,Android,Webview,Android Webview,我在Google Play store上有很多android应用程序,我每周或每月更新一次。但每当我在Google Play store上传新版本应用程序时,该应用程序都不会显示任何“新版本可用”提示消息或在Google Play store中。 我尝试了许多可能的方法并搜索堆栈溢出,但没有找到更好的解决方案。我想显示提示信息,如下图所示。 这是怎么做到的?我在堆栈溢出上发现了一些东西,但对我没有多大帮助。我的许多应用程序都在android webview上。 任何见解都会非常有用 我正在尝试

我在Google Play store上有很多android应用程序,我每周或每月更新一次。但每当我在Google Play store上传新版本应用程序时,该应用程序都不会显示任何“新版本可用”提示消息或在Google Play store中。 我尝试了许多可能的方法并搜索堆栈溢出,但没有找到更好的解决方案。我想显示提示信息,如下图所示。

这是怎么做到的?我在堆栈溢出上发现了一些东西,但对我没有多大帮助。我的许多应用程序都在android webview上。 任何见解都会非常有用

我正在尝试下面的新版本更新提示消息代码

checkisupdaterady.java文件

import android.os.AsyncTask;
import android.util.Log;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class CheckIsUpdateReady extends AsyncTask<Void, String, String> {
    String appURL="";
    private UrlResponce mUrlResponce;
    public CheckIsUpdateReady(String appURL, UrlResponce callback) {
        this.appURL=appURL;
        mUrlResponce = callback;
    }
@Override

protected String doInBackground(Void... voids) {

    String newVersion = null;

    try {
        Document document = Jsoup.connect(appURL)
                .timeout(20000)
                .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();
        if (document != null) {
            Elements element = document.getElementsContainingOwnText("Current Version");
            for (Element ele : element) {
                if (ele.siblingElements() != null) {
                    Elements sibElemets = ele.siblingElements();
                    for (Element sibElemet : sibElemets) {
                        newVersion = sibElemet.text();
                    }
                }
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return newVersion;
}

@Override
protected void onPostExecute(String onlineVersion) {
    super.onPostExecute(onlineVersion);
    if (onlineVersion != null && !onlineVersion.isEmpty()) {
        mUrlResponce.onReceived(onlineVersion);
    }

    Log.d("update", " playstore App version " + onlineVersion);

}
}
public abstract class UrlResponce {
public abstract void onReceived(String resposeStr);

}
和导入依赖项

implementation 'org.jsoup:jsoup:1.11.3'
将以下代码添加到MainActivity.java文件OnCreate函数

String currentVersion = "";
    try {
        currentVersion = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    new CheckIsUpdateReady("https://play.google.com/store/apps/details?id=" + getPackageName() + "&hl=en", new UrlResponce() {
        @Override
        public void onReceived(String resposeStr) {
            Toast.makeText(getBaseContext(),resposeStr,Toast.LENGTH_SHORT).show();
        }
    }).execute();

但这不是工作。请帮帮我。我的代码错了吗?

我想,你要找的是

应用内更新是一个Play Core库功能,它引入了一个新的请求流,以提示活动用户更新您的应用。应用内更新仅适用于运行Android 5.0(API级别21)或更高版本的设备,并且要求您使用Play Core library 1.5.0或更高版本


您可以浏览并使用
AppUpdateManager
检查应用程序更新

您可以在谷歌提供的应用程序中实现
应用程序内更新。这将要求用户在您的应用程序在play store上线后更新其应用程序。用户界面由谷歌处理。您只需选择是需要
AppUpdateType.IMMEDIATE
还是
AppUpdateType.FLEXIBLE

对不起,迟了答复。我已经用过了,但没有用。现在请检查我的问题。我正在更新我的问题。请帮助我。你想显示你的自定义对话框,而不是使用谷歌的
应用程序内更新。你可以做到:1。使用firebase远程配置并保留最新版本代码。2.打开应用程序时,从远程配置获取此最新版本代码。3.将此版本代码与应用程序的版本代码4进行比较。如果小于从远程配置获取的值,则向用户显示更新应用程序的弹出窗口。5.在该对话框中单击更新,将用户重定向到Playstore。顺便说一句,最好在应用程序更新中使用
,这会给您带来多种优势。你可以一边使用它一边更新你的应用。顺便问一下,你说不工作是什么意思?如果你想测试应用程序内更新,你应该将应用程序中的版本代码设置为低于playstore上的最新版本。然后只有你才能看到弹出窗口。我已经发布了我的代码。请检查我的问题代码。是的,你能帮我吗?任何步骤或任何代码示例?当更新在play store上可用时,我想获得通知更新。你能解释一下如何使用这个库吗?我习惯了某些代码。请检查我的问题,我正在更新问题。