我检查外部存储器是否已安装并可用于读/写,然后我从中读取。我正在使用确切的官方Android示例代码(from here)。
它表示未安装外部存储。 getExternalFilesDir(null)
会返回null
。
首先,我使用的HTC One V没有插入外部SD卡(但内部存储量很大)。
现在,我在WayteQ xTAB-70dci平板电脑上遇到了同样的情况,它有一个巨大的“内部SD卡”(平板电脑就是这样称呼它),但没有插入外部SD卡。
在这两种情况下,标准的Android API(getExternalStorageState()
,getExternalFilesDir()
等)都会返回false。
我绝对厌倦了。显然,支付我的应用程序(具有大量图形的游戏)的用户希望它能够在具有巨大内部SD卡的手机/平板电脑上正确安装(如WayteQ)。
这里有什么问题?为什么这些设备(HTC,WayteQ,加油!)指向ext SD卡(默认情况下通常从产品中丢失)而不是其庞大的内部SD存储?绝对不合逻辑甚至有害。我能做些什么,有一个标准的解决方法吗?
答案 0 :(得分:1)
据说这取决于设备制造商。我确实相信内部/外部存储点的诡计让三星在他们的手机上。
除了检查外部是否可用之外,您还必须检查/data
目录大小,以查看是否可以在内部部件上缓存您的应用。见here。我假设你因为文件大小限制而无论如何要求下载应用程序的其余部分,对吗?
奖金信息:这不应该让您感到烦恼,但作为一名优秀的开发者,您也可以考虑这一点。有些人使用CronMod脚本在外部存储下安装不同的文件夹。所以他们有更多的空间。太棒了吧?当您使用不同的版本并且/data/data
在SD上时(在电话上显示为较大的内部存储器)时会出现问题,但/data/cache
仍在内部以提高速度。突然之间,您可能没有关于可用缓存内部大小的真实,硬数据。但话又说回来,这主要是由高级用户完成的,应该对即将发生的事情有所了解。