gpt4 book ai didi

android - Android 上的 jNetPcap : problem with findAllDevs method!

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:16 24 4
gpt4 key购买 nike

我已经成功地将 jNetPcap 编译为 Android 的共享库。我使用以下代码制作了一个简单的应用程序:http://jnetpcap.com/examples/classic测试 API。

问题是当我调用 findAllDevs 方法时出现异常并显示此消息:“无法读取设备列表,错误 issocket:权限被拒绝”

我无法理解原因,因为我在程序的第一部分进行了调用以获得我的应用程序的 root 权限,并且我在 root 手机上测试了我的应用程序。当我运行该应用程序时,会弹出一个消息:“SnifferApp 已被授予 super 用户权限”,然后发生异常。

有什么想法吗?

这是我的一段代码:

Process p = Runtime.getRuntime().exec("su");
/*try {
Thread.sleep(10000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // do nothing for 1000 miliseconds (1 second)
*/
try {
System.loadLibrary(JNETPCAP_LIBRARY_NAME);
}
catch (UnsatisfiedLinkError e) {
System.out.println("Native code library failed to load.\n" + e);
}

/***************************************************************************
* First get a list of devices on this system
**************************************************************************/
int r = Pcap.findAllDevs(alldevs, errbuf);
r = Pcap.findAllDevs(alldevs, errbuf);
if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
tv.append("Can't read list of devices, error is" + errbuf
.toString());
setContentView(tv);
return;
}

最佳答案

据我了解,您正在创建一个新进程并获得 super 用户许可,但您的应用没有这些权限。

尝试在您的 list 文件中添加此权限:

<uses-permission android:name="android.permission.INTERNET" /> 

我猜 findAllDevs 将打开手机上的网络设备。

关于android - Android 上的 jNetPcap : problem with findAllDevs method!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966603/

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