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

如何让Flutter开发的安卓应用成为系统图片分享的可选应用?

实现思路

整体实现分为三个核心环节,安卓端注册分享入口、接收分享数据、跨层传递到Flutter层后执行上传逻辑即可:

1. 配置应用出现在系统分享列表

修改Flutter安卓项目下的android/app/src/main/AndroidManifest.xml文件,在主Activity标签内新增接收分享的Intent过滤器:

<activity
    android:name=".MainActivity"
    <!-- 原有配置保持不变 -->
    >
    <!-- 新增如下Intent过滤器 -->
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <!-- 仅接收图片类型的分享 -->
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>

配置完成后重新编译应用,系统分享图片时就会自动把你的应用列入可选列表。

2. 接收外部分享的图片数据

有两种实现方案可选:

  • 手动实现原生层交互:在主Activity中重写onCreate、onNewIntent方法,捕获动作类型为ACTION_SEND的Intent,读取Intent携带的图片Uri,转换为本地文件路径后,通过MethodChannel传递给Flutter层。
  • 直接使用第三方封装包:可直接引入receive_sharing_intent包,无需手动编写原生层代码,直接在Flutter层调用对应的监听方法即可拿到分享的图片文件路径。

注意:安卓13及以上版本需要动态申请READ_MEDIA_IMAGES权限,才能正常读取分享得到的图片文件内容。

3. 后台发送图片到PC端

拿到图片本地路径后,根据你的使用场景选择传输方案即可:

  • 同局域网场景:PC端启动端口监听服务,安卓端通过Socket直接将图片文件流发送到PC对应端口
  • 跨网场景:安卓端先将图片上传到自己的服务端,再由服务端推送给登录同账号的PC端
  • 需要保证后台传输稳定性的话,可以给安卓端配置前台服务,避免系统后台查杀导致传输中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:24:02