我想在电话上发生某些特定事件时弹出通知(并在单击打开应用程序后发出通知)(在我的情况下,是接收具有预定格式或特定电话号码的SMS)。当前,我使用flutter SMS package并如下所示在main()中构建SmsReceiver类的实例,然后尝试将sms正文打印到控制台:
void main() {
SmsReceiver receiver = new SmsReceiver();
receiver.onSmsReceived.listen((SmsMessage msg) => print(msg.body));
runApp(MyApp());
}
我在真实设备(三星Galaxy 8+)上测试代码。当应用程序运行或在后台运行时,我收到的短信内容没有问题。但是,当我关闭应用程序并收到短信时,出现以下错误?在控制台中打印:
W / FlutterJNI(23977):试图向Flutter发送平台消息,但FlutterJNI与本机C ++分离。无法发送。频道:plugins.babariviere.com/recvSMS。响应ID:0]
您能帮我吗?即使关闭应用程序,也可以监听此类事件并触发通知吗?
ps.s。我调查了flutter local notifications。但是,看起来该程序包仅计划显示通知。就我而言,我希望通知是事件驱动的。
我面临100%相同的问题。我仍在寻找性能稳定但没有运气的解决方案,但我正在写此答案以分享我的经验和发现,希望我们可以一起找到解决方案。
SmsReceiver receiver = new SmsReceiver();
receiver.onSmsReceived.listen((SmsMessage msg){
// Do something to pop a notification and launch main application
});
因此,我们必须找到一种通过flutter应用程序运行android后台服务的方法,这可以通过使用flutter包在后台运行服务来实现。
我对任何类型的应用程序开发都是陌生的,我可能是错的,但这是我所发现的。如果您有出路,请分享。祝你好运。