在Android中如何访问外设存储设备?如:Nand 和 Flash卡。我们对7寸2.3版本和10寸2.1版本的Android进行了测试。测试代码和结果如下:

测试代码:

 
  
  1. Application Emenu_App = getApplication();
  2. File aa = getDatabasePath("emenu_db.db");
  3. File bb = getFilesDir();
  4. File cc = getExternalFilesDir(null);
  5. File dd = Environment.getDataDirectory();
  6. File ee = Environment.getDownloadCacheDirectory();
  7. File ff = Environment.getExternalStorageDirectory();
  8. File gg = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS);
  9. File hh = Environment.getRootDirectory();
  10. 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的内容。