4

私はテキストビューで猫のログ情報を印刷するためのアプリをやっています。私はそれを行うために次のコードを使用します。

Log.e("msg1","message1");
Log.e("msg2","message2");
Log.e("msg3","message3");
try {
         String separator = System.getProperty("line.separator"); 
                 try {
                     Process mProcess = Runtime.getRuntime().exec("logcat -e");
                     BufferedReader reader =  new BufferedReader(new InputStreamReader(mProcess.getInputStream()));
                     StringBuilder builder = new StringBuilder();
                     String line = "";

                     while ((line = reader.readLine())!= null) {
                         builder.append(line);
                         builder.append(separator);
                     }
                     System.out.println(separator +"OUTPUT - "+builder.toString());
                     tv.setText(builder.toString());
    } catch (IOException e) { }

マニフェストファイルで、次のような許可を与えます:

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

テキストビューでlocatから情報を取得できませんでした。Eclipse logcat のコードの出力は次のとおりです。

09-18 11:01:51.649: INFO/ActivityManager(66): Displayed activity com.log.cat/.main1: 2224 ms (total 2224 ms)
09-18 11:01:52.799: INFO/ActivityManager(66): Starting activity: Intent { cmp=com.log.cat/.main (has extras) }
09-18 11:01:52.958: ERROR/msg1(346): message1
09-18 11:01:52.958: ERROR/msg2(346): message2
09-18 11:01:52.969: ERROR/msg3(346): message3
09-18 11:01:53.028: INFO/global(346): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
09-18 11:01:53.059: INFO/System.out(346): OUTPUT - 
09-18 11:01:53.588: INFO/ActivityManager(66): Displayed activity com.log.cat/.main: 754 ms (total 754 ms)

システムアウト。logcat には何も出力しません。logcat -e の代わりにlogcat -dを使用する場合 。私のlogcat情報がないという点で、すべてのシステム関連情報を出力します。私を助けてください。logcat -eを使用するために、他の情報ではなくテキストビューにアプリの logcat 情報を表示する必要があります。私を助けてください。

4

1 に答える 1

0

This is working code for me You are using Runtime.getRuntime().exec("logcat -e"); So it will give you if any error in process So if not any error in your execution it will not display any text in your textview

If you want to test your code change the value Runtime.getRuntime().exec("logcat -e"); to Runtime.getRuntime().exec("logcat -d");

You will get text in text view

There are V,D,I,W,E five type of logcat category

For more details see below link

Click here

于 2011-08-27T11:11:47.127 に答える