- The client must enable CCCD (notify/indicate). Advertising alone does not push data.
- MTU and characteristic size matter. Oversized payloads without negotiation get dropped.
- Connection interval and phone OS background limits can starve notifies. Test with the screen on first.
- Confirm the UUID and handle match the phone app. A wrong characteristic looks like ‘silent link’.
Short answer
Phone connects to ESP32 GATT but never gets notifications. What is missing?
中文
短答
手机连上 ESP32 GATT 却收不到通知,缺什么?
- 客户端要打开 CCCD(notify/indicate)。只广播不会往上推数据。
- MTU 和特征长度要对。没协商就塞过大包会被丢掉。
- 连接间隔和手机后台策略会饿死通知。先亮屏测通。
- 核对 UUID 与 handle 是否就是 App 订的那条。订错特征会像「连着但没声」。