【发布时间】:2021-02-06 17:26:58
【问题描述】:
我一直在努力解决这个问题,但没有成功。 我正在执行一个命令来获取 ping 结果,然后将其存储在一个变量中,但是当我在 TOAST 中显示该变量时,它总是显示“NULL”。
这是我的代码:
fun pingthis(): String? {
try
{
//execute the command
val pingprocess: Process = Runtime.getRuntime().exec("/system/bin/ping -c 1 -s 64 $host")
pingprocess.waitFor()
val bufferedReader = BufferedReader(InputStreamReader(pingprocess.inputStream))
//read the result
val logger: StringBuilder = StringBuilder()
var line: String? = ""
while (line != null) {
line = bufferedReader.readLine()
logger.append(line + "\n")
}
pingResult = logger.toString()
} catch (e: IOException) {}
return pingResult
}
如您所见,“pingResult”总是返回 NULL。我不知道为什么。我做错了什么?
【问题讨论】:
-
您执行一个进程,等待它完成然后尝试读取它的输出 - 但该进程已经终止,所以您什么也得不到……stackoverflow.com/a/26127342/829571
-
我已经删除了 waitFor 表达式。我仍然从 BufferedReader 获得空值。如何准确读取命令 exec 的输出?我一无所知。