在我的应用中阅读gmail附件

时间:2013-07-03 17:20:33

标签: android android-intent gmail email-attachments

我正在尝试在我的应用中阅读(第一次 - 对我来说是新的)gmail附件(.gcsb扩展名)。意图过滤器如下所示:

<intent-filter>
    <action android:name="android.intent.action.VIEW"></action>
    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>
    <data android:pathPattern="*.gcsb"></data>
    <data android:mimeType="application/*"></data>
</intent-filter>

这似乎让“下载”和“预览”按钮显示在gmail中的附件旁边(没有该过滤器,按钮不会出现)。

在活动中(onCreate()/ onRestart())我这样做:

....
Intent  intent = getIntent();

if (!Intent.ACTION_VIEW.equals(intent.getAction())) {
    //  Deal with the file from gmail here
}

....

检查是否是导致此操作启动的gmail。

然而,intent.getAction()总是解析为android.intent.action.MAIN,所以它永远不会做任何事情。活动中还有另一个意图过滤器:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

正在进行应用程序启动,但我不明白为什么我从未在gmail中看到android.intent.action.VIEW?

1 个答案:

答案 0 :(得分:0)

答案似乎是由于各种原因,活动被设置为“单一实例”。这意味着当它再次被带到前台时,它会以最初启动时的意图返回,而不是由gmail创建的那个。

删除“单个实例”属性允许使用正确的意图。