【发布时间】:2020-11-17 04:21:33
【问题描述】:
我正在尝试在我的 Android 应用程序中运行 shell 命令,以检查给定的 tcp port 是否已打开:
Runtime.getRuntime().exec(arrayOf("/system/bin/sh", "-c", "netstat -tulpn | grep :8080"))
在 Android 版本
但在 Android 10 中,它不再工作了。进程 exec 将返回:
Process[pid=9534 ,hasExited=true, exitcode=1]
当读取进程的inputStream 时,它总是null,而从终端执行netstat -tulpn | grep :8080 将返回一个条目,正如预期的那样。
跑步
Runtime.getRuntime().exec(arrayOf("/system/bin/sh", "-c", "netstat -tulpn"))
单独,解析输出,只会显示:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program Name
根本没有其他数据。
我只在 Android 10 中遇到这个问题,因为对于旧版本它可以工作。
Android 10 中关于 shell 命令有什么变化吗?我有必要运行这个命令。 任何帮助将不胜感激...
【问题讨论】:
标签: android linux shell runtime.exec android-shell