Android-readLine();使我的应用程序崩溃



我使用以太网屏蔽在Arduino Leonardo上设置了一台服务器。通过套接字连接,我可以将字符串从我的Android应用程序发送到我的Arduino,我可以成功地读取这些字符串。我的Arduino代码的一部分是:

if (client.available() > 0) {
    char thisChar = client.read();
    if (readString.length() < 30){
        readString.concat(thisChar);
    }
    if (thisChar == 'n') {
        if (readString.indexOf("connect") > 0) {
            client.print("connection_ok");
        }
        if (readString.indexOf("change") >= 0) {
            changeLedState();   // Set the LED on
        }
    }
}

而我的安卓代码是:

Socket s = new Socket("192.168.0.177",23);
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
if (s.isConnected()){
     out.println("connectn");
     BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
     String line = r.readLine();
}

我的Android应用程序总是在readLine();时崩溃。如果我使用out.print ("change");,changeLedState真的会发生,所以我知道我可以从我的Android应用程序中读取输出字符串,但我还没有设法从Arduino读取到Android的输入字符串。我该怎么修?

尝试将indexOf("connect") > 0更改为indexOf("connect") >= 0

或者更好的方法是,使用类似startsWith(返回布尔值)的东西,而不是indexOf,如果这是你真正的意思的话。

最新更新