android - 当我收到来自 mqtt 代理的消息时,我想 push notification

我正在开发 flutter 应用程序(当树莓派检测到移动时通知用户)。一切正常。

  1. 将 flutter 应用程序连接到 mqtt 代理
  2. 订阅主题
  3. 从 mqtt 代理获取消息,我可以在控制台日志中看到它们

我的问题是,当我从 MQTT 经纪人那里收到消息时,我想 push notification 。我尝试了“flutter_local_notification”,但我能找到的只是使用触发按钮的教程。

void _subscribeToTopic(String topicName) {
    print('Subscribing to the $topicName topic');
    client.subscribe(topicName, MqttQos.atMostOnce);

    // print the message when it is received
    client.updates?.listen((List<MqttReceivedMessage<MqttMessage>>? c) {
      final recMess = c![0].payload as MqttPublishMessage;
      final message =
          MqttPublishPayload.bytesToStringAsString(recMess.payload.message);
      print('YOU GOT A NEW MESSAGE:');
      // i want to push notifation
      print(message);
    });
}

回答1

我找到了一个解决方案,我使用“fluter_local_notification”创建了一个通知服务,然后当我从 mqtt 代理收到消息时调用了 shownotification 函数。

void _subscribeToTopic(String topicName) {
print('Subscribing to the $topicName topic');

client.subscribe(topicName, MqttQos.atMostOnce);

// print the message when it is received
client.updates?.listen((List<MqttReceivedMessage<MqttMessage>>? c) {
  final recMess = c![0].payload as MqttPublishMessage;
  final message =
      MqttPublishPayload.bytesToStringAsString(recMess.payload.message);
  print('YOU GOT A NEW MESSAGE:');
  // i want to push notifation
  NotificationService()
      .showNotification(1, 'check your mailbox', 'you have new mail', 1);
  print(message);
});

}

相似文章

pinescript-v5 - Pinescript 循环警报

设置警报时,我正在运行一个循环以循环浏览40项资产的列表,但警报似乎只针对满足条件的第一项资产触发,而不会检查其余资产。我附上了下面的脚本//@version=5indicator(title='sc...

reactjs - state & props 没有正确刷新

我正在研究手风琴配置器。我是react的新手。我有三个Class:Touche管理4个选择(音符拉,不推,八度拉,八度推)显示所有Touche的键盘显示当前键盘和选择器的KeyboardManager...

随机推荐

最新文章