2015-05-13 5 views
0

Я пытаюсь сделать пакет нюхают Application и я должен был построить его как систему Application для связующей 4.Libpcap не захватывая любой интерфейс на андроид устройства

r = pcap_findalldevs (&alldevs, errbuf); 
printf("R==========%d",r); 

__android_log_write(ANDROID_LOG_ERROR, "Tag",errbuf); 

error is E/Tag (4751): Can't open netlink socket 13:Permission denied 

Я не могу захватить любой интерфейс на устройстве. Я также дал разрешения моему приложению

Manifest.xml

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
<uses-permission android:name="android.permission.NET_ADMIN"/> 
<uses-permission android:name="android.permission.NET_RAW"/> 
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES"/> 
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/> 
<permission-group android:name="android.permission-group.SYSTEM_TOOLS"></permission-group> 

ответ

0

Почему Вы попрежнему ошибку? Процитирую страницу pcap_findalldevs() человек:

RETURN VALUE 
    pcap_findalldevs() returns 0 on success and -1 on failure. If -1 is 
    returned, errbuf is filled in with an appropriate error message. 
    errbuf is assumed to be able to hold at least PCAP_ERRBUF_SIZE chars. 

Если г 0, ошибки не произошло, и есть NO гарантия, что errbuf содержит ничего значимое. Do

if (pcap_findalldevs (&alldevs, errbuf) == -1) 
    __android_log_write(ANDROID_LOG_ERROR, "Tag",errbuf); 

вместо этого.

+0

Вы могли бы предложить любое решение, чтобы избежать этой ошибки? Спасибо в advanse –

+0

Какая ошибка? Если 'pcap_findalldevs()' возвращает -1, ошибки нет. Вы изменили свой код, чтобы сделать то, что я сказал, что он должен делать, т. Е. * Проверить возвращаемое значение 'pcap_findalldevs()' и распечатать сообщение об ошибке только тогда, когда оно возвращает -1 *, а затем запустить его, а затем распечатать ошибка? –