【问题标题】:Where should I programmatically download new version of my Android App?我应该在哪里以编程方式下载我的 Android 应用程序的新版本?
【发布时间】:2020-05-15 12:47:18
【问题描述】:

我正在为大约 500 个用户开发一个内部应用程序,所以我不想在 Play 商店中发布它。

我建立了一个自动更新机制,我通过调用我的服务器来检查更新,并使用DownloadManagerBroadcastReceiver 启动下载。

我下载新版应用程序的存储目录对我来说很重要,因为我不想向我的用户询问WRITE_EXTERNAL_STORAGE 权限。

我已经调查了getFilesDir()getExternalFilesDir()getExternalPublicDir(),但我很困惑与其他相比,它们的优缺点是什么,如果我选择特定的目的地?对此的任何帮助将不胜感激。

【问题讨论】:

  • 有什么理由不使用 Playstore 更新机制?
  • 这是一个仅限 500 个用户的内部应用程序。由于应用程序的内部性质,我们不想走 Play Store 路径。
  • 您可以使用 Play 商店并将人员添加到列表中,然后他们必须加入该程序并接受它,Beta 或 Alpha 测试允许您这样做,您永远不需要公开并饶恕您这种分发机制,如果还不够我强烈建议搜索其他应用商店,Google Play 有很多只是一种分发方式
  • 我的回答可能看起来很激进,并且以某种方式开箱即用,但是如果您没有将应用程序插入 Play 商店,那么您可以将 targetSdkVersion 设置为低于 23(比如 22)并绕过所有运行时权限的东西。见stackoverflow.com/questions/38817578/…

标签: android android-permissions android-storage


【解决方案1】:

最好使用 getFilesDir() 并将代码存储在您的应用程序的私有区域中,其他应用程序无法访问,以避免安全风险。其他两个选项返回一个可由其他应用程序访问的目录。在 getFilesDir() 返回的目录中写入文件不需要 WRITE_EXTERNAL_STORAGE 权限。

【讨论】:

  • 如果我使用 getFilesDir(),在可用存储空间方面是否有任何限制?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 2011-04-17
  • 2012-06-09
  • 1970-01-01
相关资源
最近更新 更多