Aux fins de la surveillance utilisation de la batterie, etc. J'ai le code qui exécute quelques appels dumpsys, lit et analyse la sortie pour extraire des données que je suis intéressé par.Android Non Octroi Dump Permission
dumpsys batterie, Tous les et dumpsys puissance tous me donner un message d'erreur pour la sortie comme "Permission Denial: ne peut pas vider le service de la batterie de pid ..." En outre, lorsque l'application est lancée, il y a un élément dans le journal étiqueté avec "PackageManager" statingNot accordant l'autorisation android.permissionDUMP au paquet .... (protectionLevel = 3 ...) "
Cependant, dumpsys cpuinfo et dumpsys netstat fonctionnent et me donnent la sortie correcte, ce qui semble être incohérent.
Je suis capable de générer batterie de décharges et similaires à partir du shell ADB, mais quand j'essaye de l'appeler par programme cela ne fonctionne pas.
J'ai essayé de l'utiliser sur un téléphone HTC Nexus One ainsi que sur l'émulateur et d'obtenir les mêmes résultats pour chacun. La chose étrange est que ce code a fonctionné sur mon Nexus One il y a un jour (avant que je mette à jour de 2.2 à 2.3), et maintenant il ne fonctionne pas. Est-ce dû à la mise à niveau?
Un exemple du code que je suis en train de courir est la suivante:
String command = "dumpsys battery";
try {
String s = null;
Process process = Runtime.getRuntime().exec(command);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(process.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(process.getErrorStream()));
// read the output from the command
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
// read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Comment puis-je obtenir les dumpsys pour me donner la sortie correcte programme et comment j'obtenir l'autorisation de décharge être accordée?
* Le Nexus One est pas enracinée et je voudrais obtenir ce travail sans avoir à enraciner dans le cadre de mon projet
Nous vous remercions pour votre aide