Android 如何启用有目的地拾取Google文档文件(保存在Google Drive上)?
我想在我的Android应用程序中选择保存在Google Drive上的Google文档文件,然后从中读取一些数据(但这超出了这个问题的范围)。因此,首先,我只想单击该文件并获得一些回调。我关注Google Drive Android API的弃用和迁移到 我设法得到了谷歌驱动器的文件列表对话框,但我不能选择谷歌文档文件(我可以看到它们,但它们不活跃,点击它们)。同时,我可以选择其他类型的文件-例如,PDF、PNG,如果我设置它们的MIME类型 现在我使用这段代码:Android 如何启用有目的地拾取Google文档文件(保存在Google Drive上)?,android,google-drive-api,google-docs,google-drive-android-api,Android,Google Drive Api,Google Docs,Google Drive Android Api,我想在我的Android应用程序中选择保存在Google Drive上的Google文档文件,然后从中读取一些数据(但这超出了这个问题的范围)。因此,首先,我只想单击该文件并获得一些回调。我关注Google Drive Android API的弃用和迁移到 我设法得到了谷歌驱动器的文件列表对话框,但我不能选择谷歌文档文件(我可以看到它们,但它们不活跃,点击它们)。同时,我可以选择其他类型的文件-例如,PDF、PNG,如果我设置它们的MIME类型 现在我使用这段代码: val pickerInte
val pickerIntent = Intent(Intent.ACTION_OPEN_DOCUMENT)
pickerIntent.addCategory(Intent.CATEGORY_OPENABLE)
pickerIntent.type = "*/*"
val mimeTypes = arrayOf(
"application/pdf", // works
"image/png", //works
// none of MIME below works
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.google-apps.document",
"application/vnd.google-apps.file"
)
pickerIntent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes)
在过去,他们使用MIME“text/plain”作为示例,因此这对我没有帮助
我尝试了几种我可以找到的MIME类型(例如),但它们都没有解决这个问题
应该为此使用什么MIME类型?或者问题不在MIME类型中 我发现了问题的根源 问题是Google文档文件-与“真实”PDF | PNG文件不同,它们是所谓的“虚拟”文件,因为它们没有二进制表示 我的问题的明确答案是文档中的下一个注释: 注意:由于应用程序无法使用openInputStream()方法直接打开虚拟文件,因此在创建包含操作\u打开\u文档或操作\u打开\u文档\u树操作的意图时,不要使用类别\u可打开类别 所以,在我删除下一行之后,问题就解决了:
pickerIntent.addCategory(Intent.CATEGORY_OPENABLE)
此外,我可以承认,Google Doc的picker过滤器在下一个MIME中运行良好:
"application/vnd.google-apps.document"
我发现了问题的根源 问题是Google文档文件-与“真实”PDF | PNG文件不同,它们是所谓的“虚拟”文件,因为它们没有二进制表示 我的问题的明确答案是文档中的下一个注释: 注意:由于应用程序无法使用openInputStream()方法直接打开虚拟文件,因此在创建包含操作\u打开\u文档或操作\u打开\u文档\u树操作的意图时,不要使用类别\u可打开类别 所以,在我删除下一行之后,问题就解决了:
pickerIntent.addCategory(Intent.CATEGORY_OPENABLE)
此外,我可以承认,Google Doc的picker过滤器在下一个MIME中运行良好:
"application/vnd.google-apps.document"