Prompt Android App User to Update App if current version <> market version

后端 未结 7 756
温柔的废话
温柔的废话 2020-12-01 02:46

Lets say my Android App version 0.1 is installed currently on the User\'s phone. Everytime they launch my App I want to check if there is a different version available in th

7条回答
  •  执笔经年
    2020-12-01 03:38

        My working Kotlin code for force App update: 
    
        var appUpdateManager: AppUpdateManager? = null
        const val FLEXIABLE_UPADTE: Int = 101
        const val FORCE_UPDATE: Int = 102
        const val APP_UPDATE_CODE: Int = 500
    
        override fun onCreate {
        // Get updateType from Webservice.
         updateApp(updateType)
        }
    
        private fun updateApp(statusCode: Int) {
            appUpdateManager = AppUpdateManagerFactory.create(this@MainActivity)
    
            val appUpdateInfoTask = appUpdateManager?.appUpdateInfo
    
            appUpdateInfoTask?.addOnSuccessListener { appUpdateInfo ->
                if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                ) {
                    if ((statusCode == Constants.FORCE_UPDATE))
                        appUpdateManager?.startUpdateFlowForResult(
                            appUpdateInfo, AppUpdateType.IMMEDIATE, this, Constants.APP_UPDATE_CODE
                        )
                    else if (statusCode == Constants.FLEXIABLE_UPADTE)
                        appUpdateManager?.startUpdateFlowForResult(
                            appUpdateInfo, AppUpdateType.FLEXIBLE, this, Constants.FLEXIABLE_UPADTE
                        )
                }
            }
        }
    
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    
     try {
                if (requestCode == Constants.APP_UPDATE_CODE && resultCode == Activity.RESULT_OK) {
                    if (resultCode != RESULT_OK) {
                        appUpdateCompleted()
                    }
                }
            } catch (e: java.lang.Exception) {
    
            }
    }
    
     private fun appUpdateCompleted() {
           Snackbar.make(
        findViewById(R.id.activity_main_layout),
        "An update has just been downloaded.",
        Snackbar.LENGTH_INDEFINITE
    ).apply {
        setAction("RESTART") { appUpdateManager.completeUpdate() }
        setActionTextColor(resources.getColor(R.color.snackbar_action_text_color))
        show()
    }
    
        }
    

提交回复
热议问题