如何将AT命令的输出转换为java中的字符串?

我正在尝试读取AT命令的结果(执行从控制台对GSM调制解调器执行各种操作的命令)。 我已经看到并成功测试了使用Java OuputStream类来获取AT命令的结果作为输出流但我需要做的是将结果不是作为输出流而是在我的类中的变量(现在为String)。

如果可以这样做的话

outStream.write(("Some At command").getBytes()); 

哪个工作正常,怎么可能做这样的事情

 Strign resultOfCommmand=.....result of some AT command; 

我是这样尝试的

  InputStream is = new ByteArrayInputStream(("some at commamd").getBytes()); String result = getStringFromInputStream(is); System.out.println("66666666666666666666-----"+result); ///////////////////// private static String getStringFromInputStream(InputStream is) { BufferedReader br = null; StringBuilder sb = new StringBuilder(); String line; try { br = new BufferedReader(new InputStreamReader(is)); while ((line = br.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return sb.toString(); } 

但是得到了结果我得到了at命令本身就像这样的字符串….输出:

 66666666666666666666-----AT+CMGR=20 

您必须重新构建程序中的流程,以便通过发送AT命令行启动它,然后回读并解析从调制解调器返回的每一条响应行,直到获得最终结果代码。 请参阅此答案以获取总体概要。

正确解析AT命令响应并不复杂,请查看atinout的源代码示例。