如何在没有Playstore的情况下自动更新Android应用程序?像Facebook应用程序或任何竞赛应用程序

时间:2015-12-13 13:27:10

标签: android android-update-app

如果不从Playstore更新,应用程序如何在内部自动更新? 我的意思是app的内部数据被更改(通过互联网)而不从Playstore更新。例如任何竞赛应用程序或Facebook应用程序。这里的新闻源会自动更新。

技术术语是什么?

有关它的任何教程吗?

6 个答案:

答案 0 :(得分:28)

如果您想检查您的应用是否有更新(不与Google Play互动),您必须轮询服务器(提供您当前的版本)并让服务器检查是否有更新的版本可用。如果是这种情况,请让服务器使用更新日志和更新版本的URL进行响应。

幸运的是,有些图书馆可以做到这一点:

  • AppUpdater。 Android库,用于检查您自己的服务器(或Google Play,Github等)上的更新。很棒documentation。此库会通知您的应用'通过显示“材料”对话框,Snackbar或通知进行更新。
  • Android Auto Update。中国图书馆,但应该做的,这是最受欢迎的图书馆之一,但这可能只是因为谷歌播放在中国不可用。
  • AppUpdateChecker一种简单的非市场方式,可以让您的应用更新。 设置的所有内容都是指向描述应用程序更改的JSON文档的URL。
  • Auto Updater此项目允许使用私人更新服务器(请参阅apk-updater)而非Google Play更新程序自动更新正在运行的APK应用程序。还附带了服务器脚本。
  • SmartUpdates。较旧的库,但是英文说明,还提供服务器脚本。
  • WVersionManager。检查更新,但必须从Play商店下载实际更新。

答案 1 :(得分:1)

这是替补

https://developer.android.com/guide/app-bundle/in-app-updates#update_readiness

尝试使用该Google库从应用程序进行更新

    dependencies {
implementation 'com.google.android.play:core:1.5.0'
...}

答案 2 :(得分:0)

您可以按照以下说明使用灵活的应用内更新:

https://developer.android.com/guide/app-bundle/in-app-updates#immediate_flow

答案 3 :(得分:0)

还可以查看AppCenter(Former HockeyApp)应用内更新https://docs.microsoft.com/en-us/appcenter/distribution/inappupdates

答案 4 :(得分:0)

https://github.com/bitstadium/HockeySDK-Android/blob/develop/hockeysdk/src/main/java/net/hockeyapp/android/tasks/DownloadFileTask.java#L194在打开下载的APK文件方面具有完美且仍在运行的实现方式...

   private fun install(downloadedAPK: File, context: Context) {
        val intent = Intent(Intent.ACTION_INSTALL_PACKAGE)
        intent.setDataAndType(Uri.fromFile(downloadedAPK),
                "application/vnd.android.package-archive")
        intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK

        var oldVmPolicy: StrictMode.VmPolicy? = null

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            oldVmPolicy = StrictMode.getVmPolicy()
            val policy = StrictMode.VmPolicy.Builder()
                    .penaltyLog()
                    .build()
            StrictMode.setVmPolicy(policy)
        }

        context.startActivity(intent)

        if (oldVmPolicy != null) {
            StrictMode.setVmPolicy(oldVmPolicy)
        }
    }

答案 5 :(得分:-2)

你可以试试这个库:implementation 'com.github.vermat516:HelperLibrary:1.0.1' 这是我认为最好的,我们只需要写:

new UniversalHelper(this).updateApp();

其余工作将由图书馆自动完成

这是您的应用程序外观的回应[This]