gpt4 book ai didi

Android:谷歌文档发送 Intent ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:38 36 4
gpt4 key购买 nike

我的应用程序包含一个发送功能,该功能显示用于发送文档的已安装程序列表。它通过以下方式实现:

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("application/zip");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ docPath));
startActivity(Intent.createChooser(sendIntent, "Email"));

Gmail 和 Dropbox 等应用出现在列表中,但 Google Docs 没有。在竞争对手使用相同文档类型的应用程序中,Google Docs 确实显示为一个 Intent 。我是否必须使用其他方法或 Intent 类型才能显示 Google 文档?

最佳答案

您可以自己研究它,在 Eclipse 中运行 DDMS 或 LogCat View ,并查看当您或其他应用启动 ACTION_SEND Intent Activity 时写入的调试日志。

你会看到:

ActivityManager: START {act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras)}

然后在您实际选择要发送的应用程序时也进行记录。你会看到这样的东西:

ActivityManager: START {act=android.intent.action.SEND typ=application/zip flg=0x13000000 cmp=com.android.bluetooth/.opp.BluetoothOppLauncherActivity (has extras)}

或者你可能还会看到这个:

ActivityManager: START {act=android.intent.action.SEND typ=*/* flg=0x13000000 cmp=com.google.android.apps.docs/.shareitem.UploadSharedItemActivity (has extras)}

你在这里看到了不同。一个应用程序设置实际 mime 类型 = application/zip,其他应用程序设置 mime 类型 */*。这意味着 Docs 应用并非设计用于发送 zip 文件。

进一步探索,使用不错的应用程序 AppXPlore ,打开 Docs,重新创建 Docs 应用程序的 list ,并在其 intent-filter block 上查看带有 UploadSharedItemActivity(匹配 */* 类型的 block )的 block :

<activity label="Docs" name=".shareitem.UploadSharedItemActivity">
<intent-filter>
<action name="android.intent.action.SEND" />
<action name="android.intent.action.SEND_MULTIPLE" />
<category name="android.intent.category.DEFAULT" />
<data mimeType="video/*" />
<data mimeType="image/*" />
<data mimeType="text/*" />
<data mimeType="application/x-vnd.oasis.opendocument.spreadsheet" />
<data mimeType="application/vnd.ms-powerpoint" />
<data mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
<data mimeType="application/msword" />
<data mimeType="application/pdf" />
<data mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
<data mimeType="application/pdf" />
<data mimeType="application/rtf" />
<data mimeType="application/vnd.ms-excel" />
<data mimeType="application/vnd.oasis.opendocument.text" />
<data mimeType="application/vnd.sun.xml.writer" />
</intent-filter>

这证明 Docs 应用程序旨在发送预定义的文件类型,Zip 不在其中。

您的应用程序可以尊重 Docs 应用程序的这一决定,或者它可以使用 */* mime 类型发送,但在这种情况下,用户可能会感到困惑,为什么列表中会有不处理 Zip 文件的意外应用程序。我会依赖第一个选项,并使用实际的 mime 类型。

关于Android:谷歌文档发送 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069203/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com