2016-07-21 16 views
0

Erste Entschuldigung für mein schlechtes Englisch.Android: Android kill tcpdump Prozess

Ich habe eine App in Android Studio entwickelt. Es ruft tcpdump auf (Process process = Runtime.getRuntime(). Exec ("su -c tcpdump -s 0 -v -w /sdcard/capture.pcap");). Anfangs funktioniert es richtig. Der tcpdump-Prozess wird jedoch abrupt beendet. Würde mir jemand sagen, warum?

Danke

Antwort

0

Es Sie könnte sagen, auf Standardfehler warum:

final Process p = Runtime.getRuntime().exec(tcpdumpCommand); 
final BufferedReader reader = new BufferedReader(
    new InputStreamReader(p.getErrorStream())); 
(new Thread() { 
    public void run() { 
    while ((line = reader.readLine()) != null) { 
     Log.d("tcpdump", "stderr: " + line); 
    } 
    Log.d("tcpdump", "end of stderr"); 
    } 
}).start(); 

... und dann in logcat aussehen. Oder versuchen Sie das gleiche mit getOutputStream() (für stdout) anstelle von getErrorStream().

Auch wenn tcpdump Verkehr erfolgreich erfasst und dann abrupt gestoppt wurde, ist ein möglicher Grund, dass Sie die SD-Karte gefüllt haben.