【发布时间】:2016-02-13 16:42:12
【问题描述】:
我有以下代码通过 Intent.ACTION_SEND 共享文件。最后一行显示了一个选择器,以便用户可以选择合适的应用程序。当我选择电子邮件时,一切都很好,并且文件已附加到电子邮件中。另一方面,当我选择谷歌驱动器时,文件被上传到谷歌驱动器,但文件名更改为“备份”,即主题。也就是说,如果我打电话给shareBackup("/sdcard/001.mks"),那么 Google 驱动器上的文件名是“备份”而不是“001.mks”。我的代码有问题吗?
public void shareBackup(String path) {
String to = "YourEmail@somewhere.com";
String subject = "Backup";
String message = "Your backup is attached";
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[] { to });
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.putExtra(Intent.EXTRA_TEXT, message);
File f = new File(path);
email.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
email.setType("text/*");
startActivity(Intent.createChooser(email, "Send"));
}
【问题讨论】:
-
您能否说明在选择 Google Drive 时如何处理传入意图?
-
最后一行显示了android选择器。然后我选择 Google Drive。之后显示 Google Drive 应用程序并从不是我的 Google Drive 应用程序继续上传。在这一步,会显示一个标题为“保存到驱动器”的对话框,我只需在 Google Drive 上选择一个文件夹,然后按“保存”按钮。文件已成功上传到驱动器。当我使用 Google Drive 应用程序将文件下载到我的 SDCard 时,文件名是“Backup”而不是“001.mks”。
-
我的意思是关于如何处理意图的代码,因为错误可能位于那里。
-
我也遇到了同样的问题。 Google Drive 采用“主题”并将其用作文件名,因此如果您不想将文件名放在主题中,那您就完蛋了。
标签: android android-intent google-drive-android-api