Android上的jNetPcap:findAllDevs方法的问题!

问题描述:

我已成功将jNetPcap编译为Android的共享库。我已经使用此代码做了一个简单的应用程序:http://jnetpcap.com/examples/classic来测试API。Android上的jNetPcap:findAllDevs方法的问题!

的问题是,当我调用该方法findAllDevs和异常引发此消息:“无法读取设备,错误issocket的列表:权限被拒绝”

我无法理解的原因,因为我有在我的程序的第一部分拨打电话,以获得我的应用程序的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; 
} 
+0

嗨,我有我的应用程序相同的问题。我能够安装jnetpcap,但是在运行'findAllDevs'函数时,我收到一个空列表,在errbuf中没有错误...我想知道你是否已经解决了这个问题?我已经以root身份运行应用程序:$ sudo -i - > root#eclipse - >在eclipse中启动AVD – wasp256 2013-04-04 19:36:24

+0

我根本没有解决它。最后,我使用本机代码来运行我的实验。如果我找到了一些我会让你知道的。 – 2013-04-05 11:03:38

+0

Thanasis Petsas我有同样的问题。我已经使用Android NDK成功编译了JnetPcap库,但是当我从官方的JnetPcap网站运行这个经典示例时,alldevs.size()返回0.您解决了吗? – 2016-01-08 10:53:13

据我了解,你正在创建一个新的进程,并获得超级用户权限,但您的应用程序没有他们。

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

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

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

+0

是的,通过这样做,Pcap.NOT_OK的值为false :),但代码再次达到if块,由于事实我试图在清单文件中添加更多的权限: \t \t \t – 2011-05-12 13:02:15

+0

但没有任何事发生.. – 2011-05-12 13:29:46

+0

这是因为你的应用程序没有以root身份运行。也许你可以做的是创建两个应用程序。您的普通应用程序使用pcap和“启动程序”,以root身份启动普通应用程序。像“su -c ”。 可以是使用__am start ...__启动应用程序的脚本。这只是一个想法,祝​​你好运。 – 2011-05-12 15:53:28