これは、上記の@TomTascheコメントのリンクの助けを借りて解決されました。Androidに組み込まれているフィードバックメカニズムを使用します。
私の中で、フィードバックエージェントを呼び出したい場所にAndroidManifest.xml
以下を追加しました。<Activity>
<intent-filter>
<action android:name="android.intent.action.APP_ERROR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
そして、私はsendFeedback()
(TomTascheブログ投稿からのコード)と呼ばれる簡単なメソッドを作成しました
@SuppressWarnings("unused")
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
private void sendFeedback() {
try {
int i = 3 / 0;
} catch (Exception e) {
ApplicationErrorReport report = new ApplicationErrorReport();
report.packageName = report.processName = getApplication().getPackageName();
report.time = System.currentTimeMillis();
report.type = ApplicationErrorReport.TYPE_CRASH;
report.systemApp = false;
ApplicationErrorReport.CrashInfo crash = new ApplicationErrorReport.CrashInfo();
crash.exceptionClassName = e.getClass().getSimpleName();
crash.exceptionMessage = e.getMessage();
StringWriter writer = new StringWriter();
PrintWriter printer = new PrintWriter(writer);
e.printStackTrace(printer);
crash.stackTrace = writer.toString();
StackTraceElement stack = e.getStackTrace()[0];
crash.throwClassName = stack.getClassName();
crash.throwFileName = stack.getFileName();
crash.throwLineNumber = stack.getLineNumber();
crash.throwMethodName = stack.getMethodName();
report.crashInfo = crash;
Intent intent = new Intent(Intent.ACTION_APP_ERROR);
intent.putExtra(Intent.EXTRA_BUG_REPORT, report);
startActivity(intent);
}
}
そして私から私SettingsActivity
はそれを次のように呼びます:
findPreference(sFeedbackKey).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
public final boolean onPreferenceClick(Preference paramAnonymousPreference) {
sendFeedback();
finish();
return true;
}
});
Android2.3.7および4.2.2での動作を確認しました。
メソッドが呼び出されると、sendFeedback()
「使用するアクションの完了」ダイアログが開き、ユーザーは3つのアクション/アイコンから選択できます。
アプリに戻る呼び出し元のアプリ、およびGooglePlayとフィードバックエージェント。Google Play Store
またはを選択するSend feedback
と、組み込みのAndroidフィードバックエージェントが意図したとおりに開きます。
「次を使用してアクションを完了する」ステップをスキップできるかどうかについては、これ以上調査していません。おそらく、に渡された正しいパラメータで可能Intent
です。これまでのところ、これは私が今のところ望んでいたことを正確に実行します。