You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Beeware安卓应用配置AndroidManifest.xml接收Intent的问题及解决

问题描述

我用Beeware开发了一款自用安卓小应用,想要接收FireFox、Youtube等App发送的Intent。最初在AndroidManifest.xml中添加了如下intent-filter:

<intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data
          android:host="www.youtube.com"
          android:scheme="https" />
      <data
          android:host="m.youtube.com"
          android:scheme="https" />
</intent-filter>

构建运行后,应用并未出现在FireFox的分享列表中。此前已实现向其他App发送Intent,现在希望完善接收Intent的功能。

问题分析

最初的intent-filter使用的是android.intent.action.VIEW动作,这个动作的作用是请求打开指定资源(如链接),只有当用户点击对应链接时,系统才会列出能处理该链接的应用。但FireFox的分享功能发送的是android.intent.action.SEND类型的Intent,用于传递分享的文本内容,两者的Intent动作不匹配,所以你的应用不会出现在分享列表里。

解决方法

修改intent-filter后,应用成功出现在FireFox和Youtube的分享列表中,修改后的配置如下:

<intent-filter>
    <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>

这个配置的核心逻辑:

  • 用android.intent.action.SEND动作匹配其他App发起的分享请求
  • 指定text/plain的MIME类型,对应分享的纯文本内容(如网页链接、视频链接)
  • 保留DEFAULT类别确保应用能被隐式Intent调用,BROWSABLE类别适配浏览器相关的分享场景

内容的提问来源于stack exchange,提问作者hoaohoao chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 02:16:03