2013-05-20 6 views
9

Ich möchte com.google.android.feedback.FeedbackActivity für meine Anwendung starten. So wie es in Hangouts-Anwendungen passiert.Starten FeedbackActivity in meiner Anwendung wie in Android Hangouts

Weiß jemand, welche Extras ich weitergeben muss?

Send feedback for Hangouts

+1

Dies ist nicht Teil des Android SDK. – CommonsWare

+0

Hmm ... auch wenn Sie "com.google.android.feedback.FeedbackActivity" starten können, würde das Feedback wahrscheinlich bei Google landen. Warum sollte jemand das tun? – ozbek

+0

Ich vermute, dass es in Google Play Console der Reporting-Anwendung endet. – pixel

Antwort

2

So scheint es, dass dies möglich ist, ist der Bericht in der Developer Console nicht sichtbar.

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) 
protected Intent prepareIcsFeedbackIntent(Activity activity, PackageManager packageManager) { 
    ApplicationErrorReport localApplicationErrorReport = new ApplicationErrorReport(); 
    localApplicationErrorReport.packageName = activity.getPackageName(); 

    localApplicationErrorReport.type = 11; 
    localApplicationErrorReport.installerPackageName = packageManager.getInstallerPackageName(
      localApplicationErrorReport.packageName); 

    return getAppErrortIntent().putExtra(Intent.EXTRA_BUG_REPORT, localApplicationErrorReport); 
} 

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) 
protected Intent getAppErrortIntent() { 
    Intent localIntent = new Intent(Intent.ACTION_APP_ERROR) 
      .addCategory(Intent.CATEGORY_DEFAULT) 
      .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    return localIntent; 
} 
+1

Hey, danke, dass du das gefunden hast! Aber wenn es nicht in deiner Konsole auftaucht, bin ich mir nicht sicher, was es dir tut. Das Senden von Fehlerberichten ins Leere wird ihnen nicht helfen, behoben zu werden ... :-) – CommonsWare

+0

Vielleicht plant Google, solche Feedback-Berichte zu erstellen, da sie die Fähigkeit, Protokolle zu sammeln, entfernt haben ... – pixel

+0

+1, derzeit nicht nützlich, aber am interessantesten! – matiash

1

Obwohl es das gleiche nicht genau ist, können Sie programmatisch einen Crash-Report-Dialog aufzurufen:

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); 

Weitere Informationen hier: http://blog.tomtasche.at/2012/10/use-built-in-feedback-mechanism-on.html

+0

Eigentlich möchte ich Feedback sammeln, das nicht unbedingt im Zusammenhang mit Abstürzen steht. – pixel

0

einfach neu erstellen, dass das Layout auf eine .xml-Datei und erstellen Sie eine Klasse, die FragmentActivity erweitert (wie die Google Hangouts-App zu tun scheint) oder erstellen Sie eine Klasse, die DialogFragment erweitert, um seine Logik zu verarbeiten.

Verwandte Themen