如何从USB闪存盘读取数据?

时间:2012-03-22 19:11:26

标签: android google-tv usb-drive

我正在为谷歌电视开发一个应用程序,我想从连接到谷歌电视的USB闪存盘中读取图像并在我的应用程序中显示它。我已经知道如何显示图像,但我不知道如何从USB读取它。我试过这段代码:

File imgFile = new File("sdcard/image/1.jpg");

但它对usb不起作用。

2 个答案:

答案 0 :(得分:1)

我认为您需要使用:

“/ sdCard / ....”而不是“sdcard /...”

如果您尝试“sdcard / ..”,它将从您应用程序的files目录中读取,而不是您想要的SDCard。所以在你的情况下,它会尝试打开 “/data/data/your_project_package_structure/files/sdcard/image/1.jpg”

使用Environment变量来获取外部存储/ usb的目录

也可能有所帮助
Uri u = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "blabla.xml"));

确保使用调试和文件浏览器路径正确。

答案 1 :(得分:1)

没有公共API可以作为文件系统访问USB设备。 getExternalStorageDirectory()不是解决方案。

为了解决这个问题,我建议您查看libmedia,这是一个设计为工具箱的库,可帮助开发人员构建应用程序。

简单如下:

VolumeManager volumeManager = new VolumeManager();
List<Volume> volumes = volumeManager.getVolumes();
Volume volume = volumes.get(0);  // simplified
File rootFolder = volume.getRoot();
File imgFile = new File(rootFolder, "image/1.jpg");