今天做工程时遇到这么一个问题:
手机有2张储存卡,如何获取两张卡的路径,便于寻找某个文件呢?
参考了一些文档,得到以下信息:
1、各种android设备的存储器路径,是不一样的.比如T卡路径,可能是/mnt/sdcard、/mnt/extsd、/mnt/external_sd或者/mnt/sdcard2,有时内置存储器的路径也可能是/mnt/sdcard,而host usb存储器的路径也是各种各样的。
因此,想要运行在各种android设备上的应用,就必须在运行期间动态获取各个可用的存储器路径,避免一个存储器空间不足就不能运行的问题。可以通过反射,调用StorageManager的隐藏函数getVolumePaths(),实现获取存储器列表。
2、为什么会有隐藏函数?针对getVolumePaths()--->我发现android2.3.3的android.os.storage.StorageManager.java没有该隐藏函数(标注为@hide),android4.0的有,于是改android SDK为android4.0
Hidden API之所以被隐藏,是想阻止开发者使用SDK中那些未完成或不稳定的部分(接口或架构)。举个例子,Bluetooth API在API 5(Android 2.0)上才开放;在API 3 和4上都是用@hide属性隐藏了。当这些API被验证和清理后,Google的开发者会移除@hi