3

我创建了一个简单的记事本应用程序,它实现了 ACTION_SEND 共享意图以共享笔记。

我的数据具有“文本/纯文本”的 MIME 类型,并且在我的设备上提供了 Google Drive(以前称为 Google Docs)作为选项,当我选择 Google Drive 时,我通过吐司消息。

我像这样创建我的共享意图:

Intent share_intent = new Intent(android.content.Intent.ACTION_SEND);

share_intent.setType("text/plain");
share_intent.putExtra(android.content.Intent.EXTRA_SUBJECT, name);
share_intent.putExtra(android.content.Intent.EXTRA_TEXT, content);

startActivity(share_intent);

Mail、Messaging、Twitter 和 Wordpress 等应用程序似乎都能很好地处理意图并至少共享 EXTRA_TEXT 内容。

我想知道是否有一种方法可以让 Google Drive 成功上传笔记,或者至少更好地处理意图?

我是Android新手,所以如果这是一个愚蠢的问题,请原谅我的愚蠢。我正在针对最低 SDK 版本 15 进行开发,如果这有帮助的话。

这是错误消息的屏幕截图: 显示错误消息的屏幕截图

在 LogCat 中,我再次发现了错误消息:

05-13 23:31:46.906: E/UploadSharedItemActivity(14594): This item cannot be uploaded as Google Document.

在错误消息之前还有一个警告:

05-13 23:31:46.250: W/ND(14594): Could not load Finalizer in its own class loader. Loading Finalizer in the current class loader instead. As a result, you will not be able to garbage collect this class loader. To support reclaiming this class loader, either resolve the underlying issue, or move Google Collections to your system class path.
05-13 23:31:46.250: W/ND(14594): java.io.FileNotFoundException: com/google/inject/internal/Finalizer.class
05-13 23:31:46.250: W/ND(14594):    at NE.a(FinalizableReferenceQueue.java:269)
05-13 23:31:46.250: W/ND(14594):    at NE.a(FinalizableReferenceQueue.java:253)

我不知道这是否相关。

如果有帮助的话,我可以在这里转储整个 LogCat。

4

3 回答 3

10

您不能将文本共享到 google 文档,但可以共享文件(文本文件或其他文件)因此,只需将文本保存到应用程序内的文件中,然后与 Intent 共享该文件:

    Intent intent = new Intent(android.content.Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + your_file_path));
    startActivity(Intent.createChooser(intent, ""));
于 2012-08-28T21:57:27.683 回答
0

是的,看起来这是 Google Drive 中的一个错误。在问这里之前,我应该在其他应用程序中进行更彻底的检查。

我已经通过应用程序的“发送反馈”功能进行了报告。希望谷歌软件工厂的人将来会修复它。

于 2012-05-16T19:20:22.260 回答
0
   val sendIntent = Intent(Intent.ACTION_VIEW)
    sendIntent.type = "application/pdf"
    sendIntent.action = Intent.ACTION_SEND
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://$filePath"))
    sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
    startActivity(Intent.createChooser(sendIntent, "Share Whatever you want..."))
于 2021-09-30T03:36:16.867 回答