我有以下问题:
我想从 Java 源调用 Android native 二进制文件(在我的例子中是 PING)。 所以我知道这可以通过创建一个新进程并监听它的 OutputStream 来实现——但我想知道是否不能为此使用 JNI。
我考虑过创建一个名为 JNIPING 的新二进制文件,它提供了一种可以从 java 调用的方法。此方法可以执行 PING 二进制文件并将其输出返回给 JNI 调用者...
所以对我来说这听起来很有可能 - 但我在 C 方面真的很差,所以我想问你是否有人可以告诉我如何做到这一点 - 或者如果这是不可能的,所以我不需要在这上面花很多时间...
非常感谢您的回复!
PS:我在我的 JNIPING 中尝试过类似的东西:
#include<stdio.h>
#include<stdlib.h>
int main() {
char str[256], buf[256];
printf("myshell-> ");
scanf("%s", str);
sprintf(buf, "ping www.google.de\n", str);
system(buf);
return 0;
}
那么我怎样才能从二进制文件中获取输出并将其发送回 java?
最佳答案
您可以使用 Process和 Runtime类来执行此操作,请参阅此 question .
另一种可能性应该是使用 InetAddress.isReachable,请参见 question
但是,在Android下的ping情况下,这两种方法似乎都失败了。
关于java - Android:从 JNI 调用调用 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141367/