在Android中如何访问外设存储设备?如:Nand 和 Flash卡。我们对7寸2.3版本和10寸2.1版本的Android进行了测试。测试代码和结果如下:
测试代码:
- Application Emenu_App = getApplication();
- File aa = getDatabasePath("emenu_db.db");
- File bb = getFilesDir();
- File cc = getExternalFilesDir(null);
- File dd = Environment.getDataDirectory();
- File ee = Environment.getDownloadCacheDirectory();
- File ff = Environment.getExternalStorageDirectory();
- File gg = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS);
- File hh = Environment.getRootDirectory();
- File ii = Environment.getExternalStorageState();
返回结果:
7寸2.3版本(Nand在PC端可见) | 10寸2.1版本(Nand在PC端不可见) | |
---|---|---|
aa | /data/data/Emenu.java/databases/emenu_db.db | 相同 |
bb | /data/data/Emenu.java/files | 相同 |
cc | /mnt/sdcard/Android/data/Emenu.java/files | 不支持此函数 |
dd | /data | 相同 |
ee | /cache | 相同 |
ff | /mnt/sdcard | /nand |
hh | /system | 不支持此函数 |
gg | 自定义闹铃的路径,自定义铃声、短信音文件夹路径同样可以用此方法得到,只是参数不同。 | 相同 |
ii | "mounted" | 相同 |
File Exporler 的截图如下:
其它需要注意的:
1、有无SDCard得到的名称相同除了CC之外(在没有SDcard时,CC返回的内容为null)
2、如果在移动设备端,将Nand Unmount,即移除,则SDCard和Nand都不能使用。
3、Nand如果在PC端可见,即通过USB可以读取,则,Eclipse的FileExporler中,SDCard包含了Nand和SDcard,其中SDcard被映射到tflash文件夹,这个在访问时需要注意。
4、如果Nand在PC端不可见,则,Eclipse的FileExporler中,SDCard只表示SDcard的内容。
本文转自 最牛傻蛋 51CTO博客,原文链接:http://blog.51cto.com/zuiniuwang/718296,如需转载请自行联系原作者