当用户从其他应用程序(如浏览器)共享URL时,我希望我的Android应用程序显示为选项。如何注册我的应用程序呢?我如何对链接共享作出反应?
非常感谢。
编辑:
我尝试过使用这样的IntentFilter但没有成功:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
有什么想法吗?
答案 0 :(得分:22)
至少你需要:
<activity android:name=".ShareActivity">
<intent-filter
android:label="Share with my app">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在您的清单中...至少会让它显示在“共享”列表中。
您缺少的最重要的部分是:
<action android:name="android.intent.action.SEND" />
要让它真正做某事,你需要一个活动。
这也可能有所帮助: http://sudarmuthu.com/blog/sharing-content-in-android-using-action_send-intent
其他信息:
<activity android:name=".ShareActivity">
<intent-filter
android:label="Share with my app">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
如果您想限制应用的响应,<data android:mimeType
会限制您的回复。
答案 1 :(得分:1)
要获取活动中的图片,请使用Uri imgUri = (Uri) i.getParcelableExtra(Intent.EXTRA_STREAM);
作为单张图片,或使用ArrayList<Uri> imgUris = i.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
获取图片列表:
Intent i = getIntent(); Bundle extras = i.getExtras(); String action = i.getAction(); // if this is from the share menu if (Intent.ACTION_SEND.equals(action)) { if (extras.containsKey(Intent.EXTRA_STREAM)) { Uri imgUri = (Uri) i.getParcelableExtra(Intent.EXTRA_STREAM); // Do job here } }
希望有所帮助
答案 2 :(得分:0)
您需要使用适当的Intent过滤器创建一个Activity。阅读有关Intent
的文档,它通过示例解释了所有这些。