该模块的主要功能是读取系统的版本信息,包括SN号、Wifi Mac地址、BT Mac地址、FT和BT标志位以及机器的当前软件版本号。
读取这些信息的关键步骤是读取系统节点值,这里采用的是执行Shell命令的方式。关键代码如下:
public static String execCommand(String command) throws IOException {
// shell与高级语言的调用
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(command);
//执行时启动了一个子进程,用输出流来得到shell执行后的结果
InputStream inputStream = proc.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = “”;
StringBuilder result = new StringBuilder(line);
while ((line = bufferedReader.readLine()) != null) {
result.append(line);
}
// 使用exec执行不会等执行成功以后才返回,它会立即返回;
try {
if (proc.waitFor() != 0) {
System.err.println(“exit value = ” + proc.exitValue());
}
}
catch (InterruptedException e) {
System.err.println(e);
}
return result.toString();
}