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

如何使用Flutter访问消息通知、手机全部SMS并存储相关数据?

Flutter 需求解决方案

1. 访问手机所有消息通知

  • Android 平台:使用 notification_listener_service 库,它封装了系统的 NotificationListenerService,能够监听并获取设备上所有APP的通知内容。使用前需要在 AndroidManifest.xml 中配置对应的服务声明,还得引导用户在系统设置里开启通知监听权限。
  • iOS 平台:受系统隐私限制,无法获取其他APP的通知,仅能处理自身APP发送的通知,可使用 flutter_local_notifications 库来管理自身通知。

2. 获取手机全部SMS

  • 跨平台方案:使用 sms 库,支持Android和iOS读取短信数据:
    • Android 端需申请 READ_SMS、READ_PHONE_STATE 权限,Android 13及以上版本还要额外申请 POST_NOTIFICATIONS 权限(若需监听短信通知)。
    • iOS 端需在 Info.plist 中配置 NSMessagesUsageDescription 字段说明读取短信的用途,且仅能读取用户授权后的短信数据(iOS 10+ 支持)。
  • 实时监听新SMS:
    • Android 可结合 broadcast_receiver 库监听 android.provider.Telephony.SMS_RECEIVED 广播,在广播回调中直接获取新短信的内容和发送号码,无需遍历全部短信。
    • iOS 可通过 sms 库的监听回调获取新短信,或配合系统 UserNotifications 框架监听短信通知(需用户授权通知权限)。

3. 存储电话号码及SMS数据

  • 本地存储推荐:
    • hive:轻量级NoSQL存储,无需编写SQL,适合快速存储批量短信、电话号码这类数据,读写性能优异。
    • sqflite:SQLite的Flutter封装,适合需要复杂查询的场景(比如按号码、时间筛选短信)。
  • 若需云端存储,可结合Firebase的 cloud_firestore,但仅本地存储的话优先选择前两者。

内容的提问来源于stack exchange,提问作者Md. Manzurul Islam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:46:05