【发布时间】:2015-03-02 11:42:03
【问题描述】:
我有以下意图:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/*");
startActivityForResult(intent, DBOpenHelper.REQUEST_CODE_RESTORE);
意图允许用户从多个选项中选择一个文本文件。例如,它适用于本地存储和 Dropbox,在这两种情况下我都可以从以下方式获取文件:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if ((requestCode == DBOpenHelper.REQUEST_CODE_RESTORE)
&& (resultCode == Activity.RESULT_OK)) {
restoreFile = new File(data.getData().getPath());
restoreFileName = restoreFile.getName();
}
}
本地存储工作正常,Dropbox 会将文件的本地副本复制到 SD 卡并返回正确的路径。问题是,如果用户从 Google Drive 中选择文件。当他们使用 Google Drive 时,data.getData().getPath() 返回类似:“/document/acc=1;doc=195”的内容,而不是返回本地存储文件的路径。如何让 Google Drive 下载文件并返回路径?我想让用户从他们可用的任何文件存储选项中进行选择。
【问题讨论】:
标签: android android-intent google-drive-api file-storage