我正在研究一个应用程序我想给应用程序用户强制更新,如果在Play商店中有新版本可用,应用程序应该向用户显示一个对话消息。如果新版本可用,如何在Android应用程序中强制更新?
0
A
回答
4
public class ForceUpdateAsync extends AsyncTask<String, String, JSONObject>{
private String latestVersion;
private String currentVersion;
private Context context;
public ForceUpdateAsync(String currentVersion, Context context){
this.currentVersion = currentVersion;
this.context = context;
}
@Override
protected JSONObject doInBackground(String... params) {
try {
latestVersion = Jsoup.connect("https://play.google.com/store/apps/details?id="+context.getPackageName()+"&hl=en")
.timeout(30000)
.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 (IOException e) {
e.printStackTrace();
}
return new JSONObject();
}
@Override
protected void onPostExecute(JSONObject jsonObject) {
if(latestVersion!=null){
if(!currentVersion.equalsIgnoreCase(latestVersion)){
// Toast.makeText(context,"update is available.",Toast.LENGTH_LONG).show();
if(!(context instanceof SplashActivity)) {
if(!((Activity)context).isFinishing()){
showForceUpdateDialog();
}
}
}
}
super.onPostExecute(jsonObject);
}
public void showForceUpdateDialog(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(context,
R.style.DialogDark));
alertDialogBuilder.setTitle(context.getString(R.string.youAreNotUpdatedTitle));
alertDialogBuilder.setMessage(context.getString(R.string.youAreNotUpdatedMessage) + " " + latestVersion + context.getString(R.string.youAreNotUpdatedMessage1));
alertDialogBuilder.setCancelable(false);
alertDialogBuilder.setPositiveButton(R.string.update, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + context.getPackageName())));
dialog.cancel();
}
});
alertDialogBuilder.show();
}
}
应用中打开你。
<string name="youAreNotUpdatedTitle">Update Available</string>
<string name="youAreNotUpdatedMessage">A new version of YOUR_APP_NAME is available. Please update to version\s</string>
<string name="youAreNotUpdatedMessage1">\s now</string>
<string name="update">Update</string>
记住,您必须在对话框代码中定义对话框的样式。
现在只需在您的基本活动中写入forceUpdate()函数并在onResume()方法内调用它即可完成!
// check version on play store and force update
public void forceUpdate(){
PackageManager packageManager = this.getPackageManager();
PackageInfo packageInfo = null;
try {
packageInfo = packageManager.getPackageInfo(getPackageName(),0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
String currentVersion = packageInfo.versionName;
new ForceUpdateAsync(currentVersion,BaseActivity.this).execute();
}
+0
嘿这个代码是为我工作,但不工作在realse prograud启用plz帮助我 –
0
在服务器端存储您的应用程序的versionCode(您在playstore上发布)。每次用户打开应用程序并获取版本代码时,请打开API。比较应用用户当前正在使用的versionCode和您存储在服务器上的版本。下面是代码来获取的versionCode您的应用程序
PackageManager manager = this.getPackageManager();
PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
String versionCode = info.versionCode;
的如果的versionCode不匹配(即从的versionCode服务器>应用程序的versionCode),提示用户更新。
P.S如果您想使用此方法,则每次更新Playstore上的应用程序时都必须更新服务器上的versionCode。
0
在您的第一个活动中,您可以创建一个应该返回最新版本应用的api调用。如果当前版本较低,则将其与当前应用程序版本进行比较,显示一个要求更新的对话框他们更新按钮,可以在string.xml你可以添加你想要这样无论按摩Play商店
0
您可以执行以下操作。
- 你应该在你的应用程序,它可以 实施check for the current version of your app on play store此功能。 并且如果用户正在使用旧版本,则提示他们对话框更新为 。
- 您的应用程序应该具有任何分析功能(Facebook,Firebase, Localytics等)支持应用程序内消息的SDK集成。与 的帮助,你可以播放推送通知或应用内消息 来更新应用程序。
在这种技术的帮助下,您可以要求您的用户更新应用程序。
相关问题
- 1. 如何更新应用程序的数据而无需更新应用程序版本? (android应用程序)
- 2. 如何强制PhoneGap Android应用程序执行自我更新?
- 3. 在AppFog或CloudFoundry上,应如何强制更新应用程序?
- 4. 强制用户更新应用程序
- 5. 如何在rails应用程序中强制使用gem版本?
- 6. 如何在Android版本中添加新的应用程序?
- 7. 如何在Chrome应用程序中动态更新版本号?
- 8. 在后台强制更新Android应用程序的最新版本,无需用户按任何按钮
- 9. GWT:如何强制客户端在新版本可用时重新下载整个应用程序?
- 10. 强制应用程序商店更新
- 11. 如何强制用户更新应用程序?
- 12. 强制用户拥有应用程序的最新版本
- 13. 强制Eclipse(Helios)在应用程序运行时使用更新版本的SWT
- 14. Android - 应用程序版本控制,更新
- 15. 如何更新MobileFirst pruduction server 7.0中的应用程序版本?
- 16. 如何更新WSO2 EMM中的应用程序版本?
- 17. 如何在AppStore上更新应用程序版本
- 18. 更改Android应用程序中的laucher活动更新版本
- 19. 更新Android应用程序到最新版本的OpenSSL
- 20. 最新版本的Android应用程序的力更新
- 21. Android应用程序更新 - 如何?
- 22. 如何在新应用更新时强制重新启动AppStore
- 23. 如何强制退出Android应用程序并重新启动?
- 24. 新版本的Android应用程序
- 25. 如何强制更新ios应用程序
- 26. 如何在wpf应用程序中检查更新安装新版本
- 27. 应用程序版本更新sniplets
- 28. 应用程序版本未更新
- 29. 更新应用程序的Rails版本
- 30. 如果新版本可用,更新本地软件包文件
当您打开您的应用程序,然后调用您的服务器上的Web服务,并检查应用程序是否更新?如果应用程序更新,然后在谷歌Play商店中打开您的应用程序并更新您的应用程序。 –
你不能这样做,如果你真的想这样做,那么将版本名称存储在你的服务器中,并且每当用户在Splash屏幕上打开应用程序时说,检查存储在你的服务器中的版本,并检查应用程序安装的版本,基于那个做你的事情。 –
您可以使用外部API检查已安装的应用程序版本和最新版本api。检查这个http://stackoverflow.com/questions/25201349/programmatically-check-play-store-for-app-updates – Praveen