应用程序未在“共享”菜单中注册为ACTION_SEND意图处理程序

5

我有一个免费和付费的Android应用程序,都基于相同的核心库代码,只是不同的子包名称,一个简单的完整版本布尔开关和免费版中的“LITE”应用程序名称。它旨在接收图像文件并处理它们。AndroidManifest.xml文件设置为:

        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <action android:name="android.intent.action.SEND_MULTIPLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="image/*" />
        </intent-filter> 

我在测试的所有模拟器和设备上,这两个应用程序都可以正常显示在画廊应用程序的分享菜单中,但有用户报告说他只能看到LITE版本在分享菜单中。该设备运行2.3版本。据说完整版曾经出现过,但自那以后就没有再出现过。他在另一台运行相同Android版本的设备上没有这个问题。

是否有人听说过或知道类似的现象发生以及背后的原因?

4个回答

2

我将回答自己的问题...

基本上,这不是一个问题。应用程序未显示在共享菜单中的原因是所选要共享的“文件”不是保存在设备上的本地图像,而是由Picassa放置在画廊中的图像(因此实际存储在Google的服务器上,因此无法通过正常的ACTION_SEND意图进行访问)。


1
基本上这不是什么问题。应用程序未显示在共享菜单中的原因是所选的“文件”不是保存在设备上的本地图像,而是由Picassa放置在画廊中的图像(因此实际上存储在Google的服务器上,因此无法通过常规的ACTION_SEND意图访问)。

0

你应该在 data 标签中添加 android:scheme="file" - 这样你的应用只会在分享本地文件而不是 URL(远程文件)时被触发。


这不会起作用,因为SEND操作没有过滤方案,因为它没有使用URI。 - AlikElzin-kilaka

0

在清单文件中设置exported="true"

<activity
            android:name="....."
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/*" />
            </intent-filter>
        </activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接