Z powodzeniem skompilowałem jNetPcap jako bibliotekę współdzieloną dla systemu Android. Zrobiłem prostą aplikację przy użyciu tego kodu: http://jnetpcap.com/examples/classic, aby przetestować API.jNetPcap na Androida: problem z metodą findAllDevs!
Problem polega na tym, że kiedy wezwać findAllDevs metoda i jest wyjątek z tej wiadomości: „Nie można odczytać listę urządzeń, błędu issocket: Permission denied”
nie mogę zrozumieć powód, ponieważ mam zadzwoniłem w pierwszej części mojego programu, aby uzyskać uprawnienia roota do mojej aplikacji i przetestowałem aplikację na zrootowanym telefonie. Kiedy uruchomię aplikację, pojawi się wyskakujące okienko z tym komunikatem: "SnifferApp uzyskał uprawnienia Superuser", a następnie pojawia się wyjątek.
Wszelkie pomysły?
Oto fragment mojego kodu:
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;
}
Witam, mam ten sam problem z moją aplikacją. Mogłem zainstalować jnetpcap, ale po uruchomieniu funkcji findAllDevs otrzymuję pustą listę, brak błędów w errbuf ... Zastanawiałem się, czy rozwiązałeś problem? Używam już aplikacji jako root: $ sudo -i -> root # eclipse -> uruchom AVD w Eclipse – wasp256
Nie rozwiązałem go w ogóle. Na koniec użyłem kodu natywnego do przeprowadzenia moich eksperymentów. Jeśli coś znajdę, dam ci znać. –
Thanasis Petsas Mam ten sam problem. Z powodzeniem zastosowałem bibliotekę JnetPcap w systemie Android NDK, ale kiedy uruchomię ten klasyczny przykład z oficjalnej strony JnetPcap, alldevs.size() zwraca 0. Czy rozwiązałeś? –