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

在Flutter开发安卓启动器时如何获取所有已安装应用的Widget列表

可行实现方案

目前没有纯Flutter侧的现成库可以直接实现读取、加载第三方应用自带Widget的能力,必须通过Flutter平台桥接+安卓原生层能力联合开发完成,核心实现步骤如下:

  • 首先在安卓原生层完成Widget相关的基础能力开发:
    1. 在AndroidManifest.xml中申请BIND_APPWIDGET等Widget相关的必要权限,适配不同安卓版本的权限要求,安卓12及以上版本需要额外申请Widget绑定的特殊权限,引导用户完成授权。
    2. 调用原生AppWidgetManager、AppWidgetHost相关API,完成三个核心能力:获取系统已安装所有应用的Widget列表、响应用户选择绑定对应Widget、渲染Widget的原生视图。
  • Flutter侧通过平台视图承载原生Widget:
    1. 使用Flutter提供的AndroidView组件,将原生层渲染完成的Widget视图嵌入到Flutter的页面布局中。
    2. 封装MethodChannel实现Flutter侧和原生层的交互,比如传递用户选中的Widget信息、通知原生层调整Widget尺寸、删除Widget等操作。
  • 额外适配处理:
    1. 第三方Widget本身的交互逻辑(点击、滑动、内容更新等)由原生层视图自行处理,不需要在Flutter侧额外适配。
    2. 持久化存储用户添加的Widget的ID、位置、尺寸等配置信息,应用重启时直接读取配置重新绑定对应Widget即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:39:05