1
我在树莓中有一个Java应用程序,在该树莓中我必须控制USB低功耗蓝牙(BLE)加密狗。我想在特定时间扫描设备。在一个shell中,我打电话给'sudo hcitool lescan --continuous',然后按ctrl-c中止扫描。停止使用ProcessBuilder扫描来自Java的树莓中的BLE加密狗
现在在java中我使用的ProcessBuilder启动bash和写入以上OutputStream的命令:
ProcessBuilder builder = new ProcessBuilder("/bin/bash");
Process proc = builder.redirectOutput(Redirect.PIPE).start();
OutputStream stdin = proc.getOutputStream();
String command= "sudo hcitool lescan --continuous\n";
stdin.write(script.getBytes());
这工作,我可以得到该hcitool的输出重定向过程的InputStream的。但如何停止扫描?就我所知,将0x03写入OutputStream将不起作用,因为ctrl-c不仅仅是值0x03,而且还是一个特殊的信号SIGINT。
那么我怎么能做到这一点?是否有可能停止扫描我开始的方式,还是必须选择其他方式?
我有类似的问题。你有没有找到解决方案? – user2722077
@ user2722077不是一个适当的,但至少有一个在我的情况下工作。看到我对这个问题的回答。 – Semaphor