在我的 Android 应用程序中,我希望用户打开一个 Google 表格文档以将数据从中导入应用程序数据库。
ACTION_GET_CONTENT
选择文件很容易/ACTION_OPEN_DOCUMENT
和 MIME 过滤器 application/vnd.google-apps.spreadsheet
. (这将是一个虚拟文件。)spreadsheets.readonly
范围):Sheets.Builder(transport, jsonFactory, appCredential)
.build()
.spreadsheets()
.get(fileid)
.execute()
但第一步返回 文件的 Uri 在设备上,第二步需要 驱动器文件的文件 ID .如何从第一个中确定第二个?
我发现的唯一糟糕的解决方案是使用 Google Drive API:我使用从 Intent 中获得的名称搜索 Sheets 文件,并得到它的 id...它需要
drive.metadata.readonly
范围,这是一个受限制的范围,而且……无论如何,这不是一个可行的解决方案……我可以从虚拟文件的uri下载pdf,但不适合导入数据。
如果有人知道答案,万分感谢!
最佳答案
这取决于 fileId
的类型是。 (我不熟悉那个特定的 API)。
一般情况下需要使用ContentResolver
转换 Uri
转换成一些可用的类型,例如 InputStream
, FileDescriptor
, ETC。
还有DocumentFile使用文档 URI 的实用程序类。
关于android - 有没有办法从文件选择器 Intent 中获取 Google 表格文件 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64206816/