在电子邮件中单击动态链接启动Android应用程序

时间:2014-07-22 12:25:47

标签: android email http android-activity dynamic-url

我需要使用链接(包含一些参数)从电子邮件启动应用程序 http://www.this-so-does-not-exist.com/something

我可以在使用intent-filter中的以下单击一个简单的电子邮件后启动我的应用程序。

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

            <data
                android:host="www.this-so-does-not-exist.com/something"
                android:scheme="http"/>
        </intent-filter>

现在我想传递一些信息以及电子邮件链接等 http://www.this-so-does-not-exist.com/something?id=4545

我如何从我的Android应用程序中读取此内容。

任何帮助将不胜感激。提前致谢。

2 个答案:

答案 0 :(得分:0)

来自getIntent().getData()

Activity将为您提供用于启动应用的Uri。查询参数可通过Urisuch as getQueryParameter()上的各种方法获得。

答案 1 :(得分:0)

Taken from this answer,我们得到意图字符串,然后解析URL如下。

if(getIntent() != null){
    String url = getIntent().getDataString(); // should be http://www.this-so-does-not-exist.com/something?id=4545
    List<NameValuePair> parameters = URLEncodedUtils.parse(new URI(url));
    for (NameValuePair p : parameters) {
        Log.i("MyApp", "Parameter Name: " + p.getName() + ", Parameter Value: " + p.getValue();
    }
}

使用此功能,您可以根据需要为URL添加任意数量的参数,并轻松检索它们以供使用。