2016-05-25 3 views
2

zugreifen Ich entwickle eine Tracker-Anwendung, für die ich wissen muss, welche Anwendung die Hardware (durch die Verwendung von PID) z. B. Kamera oder GPS beginnt. Diese Informationen werden in dumpsys Datei in Android protokolliert. Ich möchte auf diese Datei in meiner Anwendung zugreifen, eine Analyse durchführen und die erforderlichen Informationen extrahieren. Ich kann auf diese Datei über adb zugreifen, aber wenn die gleichen Befehle ich ausführen, meine Java-Codierungsberechtigung verweigert Fehler tritt auf. Ich habe auch android.permission.dump in meiner Manifestdatei noch Fehler hinzugefügt.kann ich Dumpsys-Datei von Android

Antwort

0

Leider wird "android.permission.DUMP" nur für System-Apps gewährt.

Sofern Sie Ihre Anwendung nicht mit der Systemsignatur signieren und die freigegebene Systembenutzer-ID (android:sharedUserId="android.uid.system") in Ihrem Manifest verwenden, können Sie die Berechtigung nicht abrufen.

Was Sie tun können, ist dumpsys Ausgang manuell auf einen externen Speicher umleiten und die Datei mit FileInputStream und BufferedReader

ex untersuchen: dumpsys > /sdcard/my_dump.txt

in Ihrer .java Klasse:

FileInputStream fis  = new FileInputStream("/sdcard/my_dump.txt"); 
BufferedReader bfr  = new BufferedReader (new InputStreamReader(fis)); 
StringBuilder builder = new StringBuilder (); 
String   line = ""; 

while ((line = br.readLine()) != null) { 
    builder.append(line); 
    Log.i("TEST", line); 
} 

Sie können die builder mit

String whateverYouAreLookingFor = "camera"; 
if (builder.toString().contains(whateverYouAreLookingFor)) { 
    //do something 
} 
überprüfen

Ich weiß, es ist nicht die beste Lösung, aber Sie können immer noch etwas daraus machen.

Hoffe, Sie finden Ihre Lösung, Prost.

+0

Ich bin kein Experte in Android, so dass ich nicht weiß, wie ich meine Anwendung als Systemanwendung und wie System freigegebene Benutzer-ID zu verwenden. Kannst du bitte Erklären. Ich habe auch mein Telefon gerootet und Superuser-Berechtigung in meiner Anwendung hinzufügen noch funktioniert es nicht. – Naveen

+0

Ich habe gesucht, wie ich meine Anwendung als Systemanwendung signieren habe ich das (http://Stackoverflow.com/a/12013730/5750621). Laut ihm kann ich die App nicht verteilen, wenn ich das tue ... Gibt es eine Möglichkeit, es durch Root-Zugriff oder Super-User-Zugriff zu tun? – Naveen

+0

Ja, Sie können Ihre App nicht mit der Systemsignatur signieren, es sei denn, Sie haben Ihr eigenes ROM. Selbst wenn Sie es irgendwie unterschreiben, indem Sie irgendwo die Signatur finden, lässt der Hersteller Sie Ihre App nicht veröffentlichen, da mit dem System signierte Apps so gut wie alles können. Ich brauche Zeit, um Ihre Frage zu beantworten. Ich hoffe, dass Sie in der Zwischenzeit Ihre Lösung bekommen. –

Verwandte Themen