【发布时间】:2011-05-11 15:18:11
【问题描述】:
我已经成功地将 jNetPcap 编译为 Android 的共享库。我使用以下代码制作了一个简单的应用程序:http://jnetpcap.com/examples/classic 来测试 API。
问题是,当我调用 findAllDevs 方法并引发异常并显示以下消息:“无法读取设备列表,错误 issocket:权限被拒绝”
我无法理解原因,因为我已经在程序的第一部分进行了调用,以便获得我的应用程序的 root 权限,并且我将我的应用程序测试到有 root 权限的手机上。当我运行该应用程序时,会弹出一个带有此消息的弹出窗口:“SnifferApp 已被授予超级用户权限”,然后发生异常。
有什么想法吗?
这是我的一段代码:
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;
}
【问题讨论】:
-
嗨,我的应用程序也有同样的问题。我能够安装 jnetpcap,但是在运行“findAllDevs”功能时,我收到一个空列表,errbuf 中没有错误……我想知道你是否解决了这个问题?我已经以 root 身份运行应用程序:$sudo -i -> root#eclipse -> 在 eclipse 中启动 AVD
-
我根本没有解决它。最后,我使用本地代码来运行我的实验。如果我发现了什么,我会告诉你的。
-
Thanasis Petsas 我也有同样的问题。我已经使用 Android NDK 成功编译了 JnetPcap 库,但是当我从 JnetPcap 官方网站运行这个经典示例时,alldevs.size() 返回 0。你解决了吗???
-
亲爱的 Ezazel, 我已经有很长时间没有研究它了。据我记得,我还没有找到关于这个的解释或解决方案..
标签: android exception libpcap device sniffer