Flutter获取已安装应用信息:推荐最优包及权限咨询
Flutter 获取已安装应用信息的方案与权限说明
推荐的包
1. device_apps
功能覆盖全面,支持直接获取已安装应用的名称、图标、包名,还能获取应用占用的存储大小、版本号等信息,是目前实现这类需求的主流选择。
2. installed_apps
你当前使用的这个包轻量简洁,能快速获取应用名称和图标,但默认不直接提供存储信息,需要结合原生代码或其他工具补充实现。
所需权限(分平台)
Android
- 获取应用列表:
- Android 11(API 30)及以上:必须添加
QUERY_ALL_PACKAGES权限到AndroidManifest.xml,或者通过<queries>标签声明需要访问的应用范围(如果仅需特定应用); - Android 10及以下:无需额外权限,系统默认允许查询所有已安装应用。
- Android 11(API 30)及以上:必须添加
- 获取存储占用信息:
- 添加
GET_PACKAGE_SIZE权限到AndroidManifest.xml,用于获取应用的存储使用数据; - Android 10(API 29)及以下:额外需要
READ_EXTERNAL_STORAGE权限。
- 添加
iOS
iOS受沙盒机制限制,仅能获取部分已安装应用(系统预装应用+已声明URL Schemes的第三方应用):
- 在
Info.plist中添加LSApplicationQueriesSchemes数组,声明你需要查询的应用URL Schemes; - 获取存储信息的能力受限,无法直接获取其他应用的存储占用数据,仅能获取自身应用的存储信息。
针对installed_apps包的权限说明
这个包的权限要求和通用Android/iOS权限一致:
- Android端:Android 11+需添加
QUERY_ALL_PACKAGES权限,若要获取存储信息,需额外添加GET_PACKAGE_SIZE(及Android 10以下的READ_EXTERNAL_STORAGE); - iOS端:需配置
LSApplicationQueriesSchemes来获取有限的应用列表,存储信息无法通过该包获取。
内容的提问来源于stack exchange,提问作者Ghayoor Ali
相关产品推荐
相关产品推荐

