从电子邮件启动Android意图

4
我需要一种不需要使用XML数据的特殊服务器,基于电子邮件功能向Android设备发送信息的良好方法。假设我发送了一封带有特殊文本/链接的电子邮件,当用户点击它时,会启动手机上的意图。
我不想替换用户当前的电子邮件应用程序。最好的方式是提供一个可点击的链接,例如"intent://data1:data2"或类似的内容。
请提供如何继续进行的猜测/解决方案。

可以做到。实现这些意图并尝试一下。 - Pentium10
1个回答

2

是的,您可以这样做。您需要在应用程序中注册一个活动作为处理程序来处理自己的协议(scheme)。应用程序清单文件将包含以下内容:

    <activity android:name=".SchemeActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="myownprotocol" />
        </intent-filter>
    </activity>

这个活动不会在应用程序启动器中显示或获得图标,因此您可能还有一个“普通”的活动。

现在,任何网页都可以有以下链接:

<a href="myownprotocol://12345">Sample link</a>

安装应用程序后,您应该能够在Web浏览器中单击此类链接并显示我的示例中的SchemeActivity。在该活动中,您可以通过以下方式获取整个链接(并解析其中的其他id/数据或您拥有的任何内容):

String fullUrl = getIntent().getDataString();

刚刚意识到这个线程解释了类似的问题:https://dev59.com/a3RB5IYBdhLWcg3wv5tA - mikeplate
1
请注意,这似乎因电子邮件客户端和/或电子邮件格式而异。并非所有内容都可以成为可点击的链接。测试,测试,测试。 - CommonsWare
在默认的 Gmail 应用程序中,你是无法逃脱这个问题的。 - yanchenko
真的。我错过了邮件是问题的重要部分。那么,如果没有您自己的Web服务器的帮助来提供您在活动中注册的自定义MIME类型,则我认为这是不可能的。 - mikeplate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接