Я работаю над приложением Я хочу, чтобы обновить приложение для пользователей, если новая версия доступна в магазине воспроизведения, приложение должно показать пользователю диалоговое окно.Как заставить обновление в приложении Android, если доступна новая версия?
ответ
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.xml вы можете добавить, что массаж вы хотите, как это.
<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();
}
эй этот код работает для меня, но не работает в режиме реального времени prograud enable plz help me –
Сохраните версию вашего приложения (которое вы выпустили на игровом автомате) на стороне сервера. Хит API каждый раз, когда пользователь открывает приложение и получает версию. Сравните версиюКод пользователя приложения, который в настоящее время используется, и тот, который вы сохранили на сервере. Вот код, чтобы получить VersionCode вашего приложения
PackageManager manager = this.getPackageManager();
PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
String versionCode = info.versionCode;
Если VersionCode не соответствует (т.е. VersionCode от сервера> приложения в VersionCode), предложит пользователю обновить.
P.S Если вы хотите использовать этот метод, вам нужно обновлять версию Code на своем сервере при каждом обновлении приложения на игровом сервере.
В первой операции вы можете сделать api-вызов, который должен вернуть последнюю версию вашего приложения. Сравните это с текущей версией приложения, если текущая версия ниже, появится диалоговое окно с просьбой обновить. Они обновляют кнопка может открыть вам приложение в игровом магазине
Вы можете сделать следующее.
- Вы должны иметь это функциональные возможности, реализованные в приложении, который можете check for the current version of your app on play store. , и если пользователь использует старую версию, затем введите их в .
- ваше приложение должно иметь любую аналитику (Facebook, Firebase, Localitics и т. Д.). Встроенный SDK, поддерживающий сообщения In-app. с помощью справку об этом, вы можете передавать сообщения Push Notification или In-app для обновления приложения.
с помощью этих методов вы можете попросить своих пользователей обновить приложение.
- 1. плагин не будет предлагать обновление, даже если доступна новая версия.
- 2. Уведомить пользователя в приложении, что новая версия доступна
- 3. Android разрешает предупреждение для пользовательской библиотеки, если доступна новая версия
- 4. Оповещение, когда доступна новая версия приложения iOS
- 5. обновить локальный файл пакета, если новая версия доступна удаленно
- 6. Android: обновление приложения, а не новая версия
- 7. Принудительное приложение для обновления, когда новая версия приложения доступна в магазине игр для Android
- 8. Как узнать, доступна ли новая версия в исходном элементе управления?
- 9. Как проверить, доступна ли новая версия изображения перед загрузкой?
- 10. Как проверить, доступна ли более новая версия Intel IPP?
- 11. Как уведомить пользователей, когда новая версия приложения доступна в приложении Apache Cordova iOS?
- 12. Чтобы обновить приложение ios, когда доступна более новая версия
- 13. Обновление пряжи - сохранена ли новая версия?
- 14. Laravel новая версия/обновление для моего приложения
- 15. Обновление основных данных, когда приходит новая версия
- 16. проверить и обновить приложение с помощью кода, когда новая версия доступна в appstore
- 17. Новая версия Drools-Guvnor
- 18. Как заставить приложение Silverlight повторно загружать, если новая версия доступна на сервере, чтобы предотвратить любую операцию в старом приложении любым пользователем
- 19. Как проверить, если функция доступна в Android
- 20. Обновления платформ и плагинов: доступна новая версия Android Studio! (показать воздушный шар)
- 21. Как показать всплывающее окно обновления, когда новая версия доступна в магазине воспроизведения
- 22. Доступна новая команда repo (1.22)
- 23. Python старая версия Cython даже если новая версия установлена
- 24. Gradle новая версия и версия сборки
- 25. dbgHelp новая версия
- 26. Android Studio предупреждает, что доступна новая версия библиотеки, но ее нет
- 27. Новая версия Silverlight - проблема: автоматическое обновление в режиме OOB
- 28. Новая версия System.Web.WebPages dlls
- 29. новая версия для классов, которые я использовал в своем приложении
- 30. Appcelerator косяка обновление новая версия приложения - отсутствует ARMv6
Когда вы открываете приложение, а затем вызываете веб-службу на свой сервер и проверяете, обновлено ли приложение? И если приложение обновляется, откройте приложение в Google Play Store и обновите приложение. –
, вы не можете этого сделать. Если вы действительно этого хотите, сохраните имя версии на своем сервере, и всякий раз, когда пользователь открывает приложение, скажем, на экране Splash, проверьте версию, хранящуюся на вашем сервере, и проверьте версию, установленную в приложении, основанные на том, что делают ваши вещи. –
Вы можете использовать внешний api для проверки установленной версии приложения и последней версии api. проверьте это http://stackoverflow.com/questions/25201349/programmatically-check-play-store-for-app-updates – Praveen