###前提・実現したいこと
Galaxy S7 edge(Androidバージョン6.0.1)でログをクリアして画面に反映させたいです。Nexus6P Androidバージョン7.1.1ではこのコードでログをクリアできています。
###発生している問題・エラーメッセージ
Galaxy S7 edge(Androidバージョン6.0.1)で
logcat -c
を実行してもログがクリアされない
###該当のソースコード
Java
1public class LogActivity extends Activity { 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 6 setContentView(R.layout.activity_log); 7 8 // ログをアップデート 9 updateLog(); 10 11 // クリアボタン 12 Button clearButton = (Button)findViewById(R.id.clearLogButton); 13 clearButton.setOnClickListener(new View.OnClickListener() { 14 @Override 15 public void onClick(View v) { 16 try { 17 Runtime.getRuntime().exec("logcat -c"); 18 } catch (Exception e) { 19 Log.e(Constants.LOG_TAG, e.getMessage()); 20 } 21 updateLog(); 22 } 23 }); 24 } 25 26 private void updateLog() { 27 28 // ログを取得 29 StringBuilder builder = new StringBuilder(); 30 try { 31 String commandLine = "logcat -d -v time -s " + Constants.LOG_TAG + ":I"; 32 Process process = Runtime.getRuntime().exec(commandLine); 33 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 34 String line; 35 while ((line = bufferedReader.readLine()) != null) { 36 builder.append(line); 37 builder.append("\n"); 38 } 39 40 } catch (Exception e) { 41 Log.e(Constants.LOG_TAG, e.getMessage()); 42 } 43 44 TextView logText = (TextView)findViewById(R.id.logBodyText); 45 logText.setText(builder.toString()); 46 } 47}
###試したこと
・updateLog内で「logcat -d -v ....」を実行する直前に「logcat -c」を実行(挙動変わらず)
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
Java7
minSdkVersion 14
targetSdkVersion 25
あなたの回答
tips
プレビュー