我使用Android Storage Access Framework API访问插入android的外部大容量存储usb驱动器。
我的问题是,如果usb驱动器包含文件格式的内容未被android理解,我是否仍然可以访问外部USB驱动器上的文件?
我是否可以编写自己的低级函数来访问android Storage Access FrameWork不知道文件格式的驱动器?
让我说我出于安全原因创建了自己的驱动器格式,Android将如何显示用户显示文件内容的对话框,以便他们可以选择一个文件,授予应用程序访问该文件的权限,它不知道文件的格式驱动器?
由于
答案 0 :(得分:0)
如果usb驱动器包含文件格式的内容未被android理解,我仍然可以访问外部USB驱动器上的文件吗?
是的。
我是否可以编写自己的低级函数来访问android Storage Access FrameWork不知道文件格式的驱动器?
您必须使用低级USB APIs编写自己的USB驱动程序(正如您所说,Android不知道如何读取您的USB驱动器)
让我说我出于安全原因创建了自己的驱动器格式,Android将如何显示用户显示文件内容的对话框,以便他们可以选择一个文件,授予应用程序访问该文件的权限,它不知道文件的格式驱动器?
DocumentsProvider API中没有任何内容控制从磁盘读取文件的方式(如果它们甚至是从磁盘读取的 - 在很多情况下,就像使用Google Drive DocumentsProvider一样,它们是从远程服务器读取的)。只要通过queryRoots()为根发回Cursor
来完成API,就可以Cursor
使用queryDocument()中的正确字段获取单个文档和Cursor
使用queryChildDocuments()中的文档列表,然后存储访问框架将正确列出您的文件。
请确保您提供有效的ParcelFileDescriptor
到openDocument(),以允许对您的自定义文件格式系统进行读/写访问。