我正在为谷歌电视开发一个应用程序,我想从连接到谷歌电视的USB闪存盘中读取图像并在我的应用程序中显示它。我已经知道如何显示图像,但我不知道如何从USB读取它。我试过这段代码:
File imgFile = new File("sdcard/image/1.jpg");
但它对usb不起作用。
答案 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");