android - Android - 在应用程序内通知用户新版本可用

84 2

我有一个Android应用程序在市场上,我已经注意到,当我发布新版本时,应用程序更新可能需要一段时间。

我想要做的是当用户启动我的应用程序时,它可以检查是否有新版本可用,如果有,只需在底部显示一条小消息,通知用户有新版本可供下载 。如果点击它,那么用户会直接进入play store的应用程序,以便他们可以开始更新。

感谢你提供的任何帮助。

时间: 原作者:

117 5

如何检查PlayStore上有没有新版本的应用程序可用,通知用户在Android中使用新版本更新旧应用程序,并且显示是或否以获取PlayStore,只要按照说明并将附加的代码放入应用程序中,检查应用程序的新版本是否可用,此代码每天检查应用程序版本,如果PlayStore上有可用的新版本更新,就应用程序启动时会出现一个弹出窗口进行更新。


if (newVersion > curVersion) {


 /* Post a Handler for the UI to pick up and open the Dialog */


 mHandler.post(showUpdate);


 } 


 private Runnable showUpdate = new Runnable(){


 public void run(){


 new AlertDialog.Builder(MainActivity.this)


 .setIcon(R.drawable.ic_launcher)


 .setTitle("Update available")


 .setMessage("An update for Live Share Tips is available on Play Store.")


 .setNegativeButton("Update now", new DialogInterface.OnClickListener() {


 public void onClick(DialogInterface dialog, int whichButton) {


 /* User clicked OK so do some stuff */


 easyTracker.send(MapBuilder.createEvent("App update",


"Update now","", null).build());


 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.appuonline.livesharetips"));


 startActivity(intent);


 }


 })


 .setPositiveButton("Later", new DialogInterface.OnClickListener() {


 public void onClick(DialogInterface dialog, int whichButton) {


 /* User clicked Cancel */


 easyTracker.send(MapBuilder.createEvent("Update_Later",


"Update later","", null).build());


 }


 })


 .show();


 }


 }; 



要下载完整的代码[url] : http://androidaone.com/11-2014/notify-users-update-app-new-version-available-playstore/

原作者:
130 3

我用FireBase远程配置来完成。


private void checkAndShowUpdateAvailableAlert() {


 try {


 String VERSION ="version";


 String NEW_FEATURES ="newFeatures";



 if (singleton.isUpdateAvailable()) {


 FirebaseRemoteConfig firebaseRemoteConfig = FirebaseRemoteConfig.getInstance();


 FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()


 .setDeveloperModeEnabled(BuildConfig.DEBUG)


 .build();


 firebaseRemoteConfig.setConfigSettings(configSettings);



 Map<String, Object> defaultValueHashMap = new HashMap<>();


 defaultValueHashMap.put(VERSION, BuildConfig.VERSION_CODE);


 defaultValueHashMap.put(NEW_FEATURES,"");



 firebaseRemoteConfig.setDefaults(defaultValueHashMap);



 long cacheExpiration = 3600; // 1 hour in seconds.


 if (firebaseRemoteConfig.getInfo().getConfigSettings().isDeveloperModeEnabled()) {


 cacheExpiration = 0;


 }



 firebaseRemoteConfig.fetch(cacheExpiration)


 .addOnCompleteListener(this, new OnCompleteListener<Void>() {


 @Override


 public void onComplete(@NonNull Task<Void> task) {


 if (task.isSuccessful()) {


 // showing update alert only one time


 singleton.setUpdateAvailable(false);



 firebaseRemoteConfig.activateFetched();


 long remoteVersionCode = firebaseRemoteConfig.getLong(VERSION);


 String newFeatures = firebaseRemoteConfig.getString(NEW_FEATURES);


 Log.d(TAG,"Remote version:" + remoteVersionCode


 +", New Features:" + newFeatures);


 if (remoteVersionCode > BuildConfig.VERSION_CODE


 && newFeatures != null


 && !newFeatures.isEmpty()) {


 contextUtility.showUpdateAlert(newFeatures);


 }



 } else {


 Log.e(TAG,"Remote config fetch failed");


 }


 }


 });


 }


 } catch (Exception e) {


 e.printStackTrace();


 }


}



步骤-

我在我的FireBase项目中维护两个键值对


1. newFeatures and 


2. version



version实际上是versionCode(整数),它与我最新的构建版本CodeCode同步。当我发布任何新版本时,我从firebase控制台更新此值。

在应用程序中,我检查此值(一次),如果它更大,我向用户显示更新消息。newFeatures是显示用户新功能的附加键。

检查完整的源代码- https://github.com/varunon9/SaathMeTravel

原作者:
...