Android Wear - 以编程方式连续读取LogCat输出的代码无效

时间:2015-10-27 15:58:41

标签: android logcat

大家好,我最近写了一些代码,在我的应用程序中由后台服务启动的后台线程中连续读取LogCat输出。我认为我的代码中没有错误但它不起作用。

在我的帖子中,我有:

@Override
public void run() {
    Process process = null;
    String cmd = "logcat -v time | grep 'AudioFocus  requestAudioFocus()'";

    try {
        process = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(process.getOutputStream());
        os.writeBytes("logcat -c" + "\n");
        os.writeBytes(cmd + "\n");
        os.flush();
    } catch(Exception e) {
    }

    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

    String line;

    try {
        while ( (line = reader.readLine()) != null ) {
            Log.e(StaticVal.TAG, line);

            // code for write line to my own log file
        }
    } catch(Exception e) {
    }
}

我还添加了显示权限:

<uses-permission android:name="android.permission.READ_LOGS" />

但是,当我使用PC插入设备并使用Android Studio进行测试时,Log.e(StaticVal.TAG, line);没有打印出结果,也没有写入我自己的日志文件。

感谢任何帮助!

(通过adb终端直接在我的设备上运行logcat -v time | grep 'AudioFocus requestAudioFocus()'按预期获得结果)

0 个答案:

没有答案