在我的Android应用程序中,我有一个意图过滤器链接到我的AndroidManifest.xml
中的一个活动,如下所示:
<activity
android:name=".MainActivity"
android:label="@string/name >
<intent-filter>
<action android:name="android.intent.action.SEND />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
根据我的理解,这应该将我的应用程序添加到浏览器(Chrome)中的应用程序列表中,这些应用程序位于&#34; Share ...&#34;部分,以便我的应用程序可以使用当前网页的URL。此列表包含Flipboard,Android Beam,Twitter,Keep,Google +等。
我发现了很多关于如何做到这一点的例子,他们都使用上面的代码。但是,我的应用程序由于某种原因没有出现在该列表中。可能是什么原因以及如何解决这个问题?
谢谢!
答案 0 :(得分:1)
您正确包含了操作和类别,但您还需要包含mimeTypes
,以便Intent
知道您要支持的共享类型。尝试包含这两行以支持文本和图像共享:
<data android:mimeType="text/plain" />
<data android:mimeType="image/*" />
像这样:
<intent-filter>
<action android:name="android.intent.action.SEND />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
<data android:mimeType="image/*" />
</intent-filter>
如果您想要从Intent
中检索要在您的应用中使用的网址,那么您需要将此代码添加到onCreate()
中的MainActivity
方法:
String action = intent.getAction();
if (action.equalsIgnoreCase(Intent.ACTION_SEND) && intent.hasExtra(Intent.EXTRA_TEXT)) {
String URL = intent.getStringExtra(Intent.EXTRA_TEXT);
}