繁体   English   中英

"将字节数组(接收到的 mqtt 消息)比较为零以发送通知"

[英]Compare byte array (received mqtt message) to zero to send notification

我正在构建 android 应用程序,该应用程序接收来自 esp8266 的 mqtt 消息,其中包含我学校项目的水传感器上的水百分比。 所以,当百分比不等于零时,我需要发送应用程序通知,但有一个问题。 接收到的消息是一个字节数组,但由于某种原因它不仅仅是数字,它具有特定的 U+FFFD 替换字符,所以我无法将此字节数组与另一个数组(如 [0])进行比较。 我正在尝试将收到的消息转换为字符串,删除所有奇怪的符号并将其与“0”进行比较。 但由于某种原因,我又不能。 例如,字符串“0����”从所有�字符中清除,但java代码仍然认为它不等于“0”。

我的代码:

if (topic.equals(topicstr2)){
                    byte[] res = message.getPayload();
                    result_notif = new String(res).replaceAll("�", "");
                    if (result_notif != "0"){
                        sendNotif();
                    }
                }

使用 !result_notif.equals("0") 而不是 result_info != "0" 并使用 .trim() 方法是我的问题的解决方案。

代码:

if (topic.equals(topicstr2)){
                    byte[] res = message.getPayload();
                    result_notif = new String(res).replaceAll("�", "").trim();
                    intent.putExtra(MainActivity.PARAM_RESULT, result_notif);
                    sendBroadcast(intent);
                    if (!result_notif.equals("0")){
                        sendNotif();
                    }
                }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM