gpt4 book ai didi

java - Android:从 JNI 调用调用 shell 命令

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:53 38 4
gpt4 key购买 nike

我有以下问题:

我想从 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?

最佳答案

您可以使用 ProcessRuntime类来执行此操作,请参阅此 question .

另一种可能性应该是使用 InetAddress.isReachable,请参见 question

但是,在Android下的ping情况下,这两种方法似乎都失败了。

关于java - Android:从 JNI 调用调用 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141367/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com