【发布时间】:2021-11-10 00:48:32
【问题描述】:
我想添加一个分享功能来与我的应用分享照片, 该应用程序有两个主要功能,每个都使用照片作为用户的主要输入数据。 所以我需要两个共享按钮来实现这两个功能。我在 AndroidManifest.xml 的应用程序标签中添加了这个:
<activity android:name="MainActivity">
<intent-filter android:label="@string/ENCODE">
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
<intent-filter android:label="@string/DECODE">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity >
但仅应用了第一个意图过滤器。 但是当我为第二个过滤器指定另一个活动时,它起作用了:
<activity android:name="MainActivity" android:label="@string/ENCODE">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity >
<activity android:name="com.company.myapp.DecodeActivity" android:label="@string/DECODE">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity >
但我必须创建DecodeActivity 并从MainActivity 复制设置代码,例如,这会导致一些问题,例如它们共享一些资源(照片选择器)在活动之间变得模棱两可,并从 DecodeActivity 导航到 MainActivity,因为它最初使用 MainActivity。
我在这里解决传入的意图:
if (Intent.ActionSend.Equals(Intent.Action) && Intent.Type != null && Intent.Type.StartsWith("image/"))
{
await ImageDispatcher.HandleSendImage(ContentResolver, Intent, "Encode");
}
【问题讨论】:
标签: android android-intent xamarin.android intentfilter