我在ICS(4.0.3)上有一个使用logcat和-vtime选项的应用程序。 它使用以下代码读取logcat:
try {
Process process = Runtime.getRuntime().exec("logcat -vtime -d");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = bufferedReader.readLine()) != null) {
... my stuff with this line...
}
catch (IOException e) {
}
我使用" android.permission.READ_CALL_LOG"和" android.permission.READ_LOGS"在我的清单文件中,我设法拥有完整的logcat。
当我在JellyBean(4.1.1)中使用此代码时,我的缓冲区只捕获我的应用程序logcat而不是完整的设备logcat。
我怎样才能拥有这个完整的logcat?这是另一种许可吗?
答案 0 :(得分:0)
JellyBean(4.1.1)不授予第三方应用程序访问完整系统logcat的权限。应用程序只能看到自己的日志行。我认为您不再需要在AndroidManifest.xml中提供READ_LOGS权限(任何应用程序都可以使用logcat自己的行)。
https://groups.google.com/forum/?fromgroups=#!topic/android-developers/6U4A5irWang
如果您仍想阅读完整的logcat,则需要使用root设备并授予超级用户访问您的应用程序的权限。