Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 注册2个活动来接收图片,从Google相册应用分享时无效大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
让我们说在我的应用程序中,用户可以发布帖子&向其他用户发送消息,&我希望将我的应用程序注册为共享文本或图像时出现在Share-via选择器中的组件,我将在 @L_387_3@manifest.xml中定义我的2个活动,如下所示(如 this official example):

<activity 
    android:name=".SharePostActivity"
    android:label="MyApp (Post)">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    <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=".SharemessageActivity"
    android:label="MyApp (messagE)">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>

在共享文本时,这非常合适,我在应用程序中看到了我的应用程序的2个图标,用于共享文本,名为MyApp(Post)& MyApp(留言),

共享图像时会出现问题,因为只有一个图标出现在清单中的第二个已定义标签(即MyApp(消息)),实际上它会在清单中打开第一个定义的活动(即SharePostActivity),

那么,如何在共享图像时显示2个选项(就像共享文本时那样)?

(我试过运行Nougat的模拟器和运行Oreo的真实设备)

—–更新—–

我发现这种奇怪的行为只有在从Google的照片应用程序共享图像时才会发生,但是当从其他应用程序共享图像时一切正常!

解决方法

一些调查会产生一个解决方案:每个intent-filter必须包含一个指向资源的android:label,而不是一个硬编码的字符串.

...
<intent-filter android:label="@String/first_value">
...

不同的活动必须有不同的标签,所以在你的情况下,清单应该是这样的

<activity 
    android:name=".SharePostActivity"
    android:label="@String/my_app_post">
    <intent-filter
        android:label="@String/my_app_post">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    <intent-filter
        android:label="@String/my_app_post">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>

<activity
    android:name=".SharemessageActivity"
    android:label="@String/my_app_message">
    <intent-filter
        android:label="@String/my_app_message">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    <intent-filter
        android:label="@String/my_app_message">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>

大佬总结

以上是大佬教程为你收集整理的android – 注册2个活动来接收图片,从Google相册应用分享时无效全部内容,希望文章能够帮你解决android – 注册2个活动来接收图片,从Google相册应用分享时无效所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。