【问题标题】:Including two intent-filters, sharing same activity, action, category and mimeType包括两个意图过滤器,共享相同的活动、动作、类别和 mimeType
【发布时间】: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


    【解决方案1】:

    这两个intent过滤器只是标签不同,不影响过滤器的功能。 我认为您应该有两个活动(每个操作一个),并且两者都应该具有相同的基类。将特定于操作的代码放在特定于操作的活动中。 或者,您可以询问用户如何处理图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 2012-11-03
      • 2014-12-03
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多