0

アプリでエラー レポートを有効にしたいので、API レベル 8 よりも高いデバイスで機能する方法を探しています。

私の現在の実装は Android 4.1.1 デバイスでは機能しません。ユーザーがエラー レポート ボタンを押してもアクションはありません。デバイス 2.2、2.3、および 4.0.4 では、さまざまな電子メール オプションが表示されます。

私のコードのアクションメソッドは次のようになります

public void startSendErrorAction(View view) {
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType( "text/plain" );
    intent.putExtra( Intent.EXTRA_EMAIL, new String[]{"my@email.de" });
    intent.putExtra( Intent.EXTRA_SUBJECT, "PDiXAttach LogReport from " + DateTime.now());
    intent.putExtra( Intent.EXTRA_TEXT, getLogContent() );

    startActivity(intent);        

}

getLogContent メソッドは、logcat -d オプションを使用してアプリケーション ログ エントリを取得します。ただし、現在、デバイスでは機能しません

Hersteller: samsung
Modell: GT-N7100
Marke: samsung
Version: 4.1.1 (REL)

ここで getLogContent-Method

public String getLogContent() {
    StringBuffer sb = new StringBuffer();
    String separator = System.getProperty( "line.separator" );
    Process process;
    try {
        process = Runtime.getRuntime().exec( "logcat -d" );
        BufferedReader bufferedReader = new BufferedReader(
                                                            new InputStreamReader( process.getInputStream() ) );
        String line;
        while( (line = bufferedReader.readLine()) != null ) {
            sb.append( line );
            sb.append( separator );
        }
        Log.d( TAG, "retrieve log content size is " + sb.length() );

    }
    catch( IOException e ) {
        Log.e( TAG, "error while retrieving logfile of application" + e.getMessage() );
    }

    return sb.toString();

}

誰かが理由を知っていますか。

4

2 に答える 2

3

ACRAは、あなたが望んでいる素晴らしい仕事をしてくれます。Google Play レポートよりもはるかに詳細な情報が提供され、バグをリモートで追跡するのに非常に役立ちます。

于 2013-01-17T14:16:35.443 に答える
0

ランタイム クラッシュにはAlogcatを使用することもできます 。

于 2013-01-17T14:31:16.257 に答える