正在阅读我的应用程序中的gmail附件



我正在尝试读取(第一次-对我来说是新的)我的应用程序中的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>

这似乎让"下载"one_answers"预览"按钮出现在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?

答案似乎是由于各种原因将活动设置为"单个实例"。这意味着,当它再次出现在前台时,它回到了最初的意图,而不是gmail创建的意图。

删除"single instance"属性可以使用正确的意图。

相关内容

  • 没有找到相关文章

最新更新