几周前,我在 HTC One V 上测试了我的应用程序。当我的应用程序在第一次运行时检查外部存储的可用性时,发现没有。(我使用getExternalStorageState()
并基于结果, getExternalFilesDir(null)
)。
我阅读了相关的 stackoverflow 线程(和 Android 文档),因此我得出结论,任何支持 Google Play 的设备都必须提供某种外部存储(SD 卡或其他)。Android 官方主页还暗示getExternalFilesDir
必须始终返回一个有效的位置(除非未安装,或安装到 PC 等)。
允许我进行测试的 HTC One V 的所有者告诉我,他的手机没有任何 SD 卡。(我知道外部存储也可以是其他东西,但正如您在上面看到的,标准getExternalStorageState
调用返回没有,即它没有返回 HTC One V 的内部存储。)
如果我关闭了我的应用程序的外部存储使用(而是依靠手机内存),One V 上一切正常。问题是,它是一个游戏,将大于 50MB,所以我被迫使用谷歌的 APK 扩展文件的可能性——这需要外部存储。
供应商/移动运营商是否有权销售没有外部存储(在这种情况下,没有 SD 卡)的手机?我知道这不是一个真正的开发问题,但正如您所看到的,这里一定有问题。据我所知,One V 有一个很大的内部存储,所以我想知道为什么getExternalStorageState
不报告它可用。