如何在Google TV上访问外部存储器

dzi*_*ney 6 android google-tv

我正在开发使用索尼互联网电视作为开发设备,它有4个USB端口.所有或没有端口可以与外部硬盘驱动器一起使用.如何选择和访问设备上的外部存储器与内部存储器.

我可以使用以下方法访问SD卡,或者至少可以访问SD卡的电视标签:

Environment.getExternalStorageDirectory();
Run Code Online (Sandbox Code Playgroud)

但我似乎无法弄清楚如何找到外部USB设备.我试图沿着UsbManager类的路径前进,但似乎应该有一种更简单,更通用的方式.我只是希望能够看到大容量存储设备,并且不想通过供应商ID等清理.但也许我在那里遗漏了一些东西.

这应该是可能的,因为我正在寻找Media Player应用程序在打开菜单并选择"选择设备"时找到的相同功能.

我只需要对驱动器的读访问权限,但读/写可能很有用.

提前致谢.

Meg*_*Rel 6

在Google TV v2中,有关USB存储支持的一些更改.USB驱动器的主要变化是:
1.USB驱动器将安装/mnt/media/usb.XXXXX而不是/ sdcard.(XXXXX由USB卷的ID(卷号:vfat或exfat,uuid:ntfs)决定.)
2.GTV支持多个USB驱动器.用户可以插入多个USB驱动器.

MediaProvider会索引所有插入的USB卷中的所有媒体文件.因此,应用程序可以查询MediaProvider以检索所有媒体文件.

示例代码:

Cursor cursor = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String [] {
Images.Media._ID,
Images.Media.DATA,// file path
},
null,null,null);

应用程序如何在驱动器同步或弹出时检测到?:
您可以注册BroadcastReceiver以接收Intent.ACTION_MEDIA_SCANNER_FINISHED和Intent.ACTION_MEDIA_EJECT.

  • 目前还没有USB存储API的计划.访问USB存储的推荐方法是通过MediaProvider. (2认同)