如何从ACTION_SEND获取网址?

时间:2012-03-12 23:44:42

标签: android android-intent intentfilter

我的应用正在注册接收网址的意图,因此当用户分享网址时,我的应用将位于应用列表中。

<intent-filter
    android:label="my app">
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
</intent-filter>

-

在我的MainActivity的onCreate()方法中:

String action = intent.getAction();
if (action.equalsIgnoreCase(Intent.ACTION_SEND)) {
    Uri data = intent.getData();
    String s = data.toString();
    output.setText(s); //output: a TextView that holds the URL
}

-

我遇到的问题是:数据为空,这很奇怪。由于此代码与ACTION_VIEW完美配合。但是,它不适用于ACTION_SEND

如何修改它?

1 个答案:

答案 0 :(得分:5)

你可以尝试

String action = intent.getAction(); 
if (action.equalsIgnoreCase(Intent.ACTION_SEND) && intent.hasExtra(Intent.EXTRA_TEXT)) { 
    String s = intent.getStringExtra(Intent.EXTRA_TEXT); 
    output.setText(s); //output: a TextView that holds the URL 
}