在我的应用程序中,我想创建一个功能,该功能将在启动时检查是否有可用的新版本的应用程序。如果是,则显示带有“是/否”选项的警报。
我已经尝试使用这个人GitHub的库。我试图通过纯GitHUB和UpdateFrom.XML来做到这一点,但似乎没有任何效果。
我有这样的东西
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
val policy: StrictMode.ThreadPolicy = StrictMode.ThreadPolicy.Builder().permitAll().build()
StrictMode.setThreadPolicy(policy)
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val toggle = ActionBarDrawerToggle(
this,
drawerLayout,
toolbar,
R.string.navigation_drawer_open,
R.string.navigation_drawer_close
)
drawerLayout.addDrawerListener(toggle)
toggle.syncState()
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
navView.setNavigationItemSelectedListener(this)
var updater = AppUpdater(this)
.setUpdateFrom(UpdateFrom.XML)
.setDisplay(Display.DIALOG)
.setTitleOnUpdateAvailable("Nová verzia dostupná")
.setContentOnUpdateAvailable("Stiahnite si prosím novú verziu aplikácie")
.setTitleOnUpdateNotAvailable("Nová verzia nie je dostupná")
.setContentOnUpdateNotAvailable("Nová verzia aplikácie nie je dostupná. Skúste neskôr")
.setButtonUpdate("Stiahnúť")
.setButtonDismiss("Neskôr")
.setIcon(R.drawable.ic_system_update_white_24dp)
.setCancelable(false)
.setUpdateXML("https://github.com/MyAccount/MyApp/tree/master/app/src/main/res/xml/provider_paths.xml")
updater.start()
}
如上所述。我要检查该应用程序的版本,是否有比下载它更新的版本并更新该应用程序的当前版本。
答案 0 :(得分:0)
要快速回答您的问题-是,您可以将发布存储在GitHub版本页面中,然后在应用程序中使用该解析器(或GitHub API)对指向该页面的链接进行硬编码),则可以获取应用下载链接。因此肯定可以手动进行。
但是,相反,我会尝试说服您不要这样做,我可以想到许多原因。您应始终使用Google Play或other alternatives之类的发行渠道。
是的,有很多理由不自己做。这只是我的脑袋(不知道您的问题背后的原因),但是可能还有很多要补充的地方。
当然,当您真的想手动强制更新时,可能会有一个非常狭窄的用例,但是无论如何,我建议您考虑沿此路径进行操作的后果。
更新:Google将发布(has released?)一个库,该库可让您检查更新,但即使那样,您也需要考虑提前强制更新-至少一个前面的版本。另请注意,Google服务并非在每台设备上都是最新的,并且在许多地区也不可用,因此也不是100%可靠的。