Android - 如何以编程方式停止连续终端操作(ping)?

时间:2014-05-26 07:55:42

标签: android

我正在开发一个简单的应用程序,但不知道如何以编程方式停止终端中的连续操作,例如PING。

我只想知道命令,然后我将它添加到runtime.getruntime.exec ...

我知道pc中有一个CTRL + C快捷方式,但我如何在Android上执行此操作?

很抱歉没有添加示例,我正在通过手机写信。

5 个答案:

答案 0 :(得分:1)

另一种方式:

Process proc = Runtime.getRuntime().exec("ping 127.0.0.1");
proc.destroy();

执行命令时,您将获得相关过程。您也可以使用它来停止ping。

答案 1 :(得分:0)

您无法直接发送CTRL + C,但请查看Process.sendSignal()Android Developers

首先,获取ping进程的进程ID。 然后,您可以轻松发送Process.sendSignal(yourPid, Process.SIGNAL_QUIT);

答案 2 :(得分:0)

经过长时间的调试后,我发现了如何解决问题 " 在没有返回ping统计信息的情况下杀死结果"。

  1. 获取ping进程的pid。 例如:

    Progress proc = runtime.exec("ping 192.168.1.1");

    其中proc类似 流程[pid = 2343] ,因此您需要提取2343。

  2. 然后,当您正在阅读ping输出时,您可以使用 "Runtime.getRuntime().exec("kill -INT " + 2243);" 来杀死这个过程。

  3. InputStreamReader reader = new InputStreamReader(proc.getInputStream());  
    BufferedReader buffer = new BufferedReader(reader);  
    String line;  
    
    while ((line = buffer.readLine()) != null) {   
        echo.append(line).append("\n");  
        if (UserStopPing) {              
            Runtime.getRuntime().exec("kill -INT " + temp);   
    }    
    proc.waitFor();
    

    此程序将停止ping,您将获得统计信息[变量回声]。

答案 3 :(得分:0)

你可以试试这个。 您的屏幕上有一个 CTRL 选项。按那个然后输入 c1 这可能对您有所帮助。

答案 4 :(得分:-1)

以防万一人们仍在寻找解决方案 - 在 Android 上,相当于 CTRL+C 是键盘上的“音量减小按钮”+ C。这应该会停止 ping。