如何让我的应用出现在其他应用的共享板中 - 例如whatsApp

Posted

技术标签:

【中文标题】如何让我的应用出现在其他应用的共享板中 - 例如whatsApp【英文标题】:How to make my app appear in share board of other apps - example whatsApp 【发布时间】:2020-11-22 22:45:12 【问题描述】:

我正在尝试读取从 WhatsApp 导出到我的 android 应用程序的聊天文本文件。 当我尝试将聊天文本文件导出到我的应用程序时,它没有出现在 WhatsApp 的共享板中,尽管我已将以下内容添加到 manifest.xml:

  <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

另外,这里是 Java 代码:

public class MainActivity extends AppCompatActivity 


@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();


    if (Intent.ACTION_SEND.equals(action) && type != null) 
        if ("text/plain".equals(type)) 
            handleSendText(intent); // Handle text being sent
         else 
            // Handle other intents, such as being started from the home screen
        
    



void handleSendText(Intent intent) 
    String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
    if (sharedText != null) 

        Log.d(TAG, sharedText);
        // Update UI to reflect text being shared
    

我经历了很多解释,但我无法弄清楚问题所在。谢谢。

【问题讨论】:

您能否更新问题,使其也显示意图过滤器的 父标签? 好的。我更新它。 【参考方案1】:

您是否在 AndroidManifest.xml 中正确的活动下添加了意图过滤器?

这在理论上应该可行,但某些应用可能不会为您的应用发送正确的意图。 WhatsApp 可能使用的是“VIEW”而不是“SEND”,因此请尝试以下操作:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.SEND" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    
    <data android:mimeType="text/plain" />
</intent-filter>

让我知道它是否适合你。

【讨论】:

您能否检查您尝试从 WhatsApp 接收的文件的 mimeType 是否真的是“text/plain”? 是的...我 100% 确定

以上是关于如何让我的应用出现在其他应用的共享板中 - 例如whatsApp的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的 Android 应用出现在另一个特定应用的共享列表中

如何让我的 React Native 应用出现在 android 的分享列表中

如何让我的应用在 Safari 共享选项中可见

如何在我的应用程序中接收共享内容?

Ios:当应用程序处于非活动状态时,如何让我的应用程序返回根视图

如何使共享库符号强大?