私はテキストビューで猫のログ情報を印刷するためのアプリをやっています。私はそれを行うために次のコードを使用します。
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 情報を表示する必要があります。私を助けてください。