2013-05-20 20 views
9

Vorrei lanciare com.google.android.feedback.FeedbackActivity per la mia applicazione. Come succede nell'applicazione Hangouts.Avvia FeedbackAttività nella mia applicazione come in Hangouts Android

Qualcuno sa quali extra devo passare per farlo?

Send feedback for Hangouts

+1

Questo non fa parte dell'SDK di Android. – CommonsWare

+0

Hmm ... anche se sarai in grado di lanciare 'com.google.android.feedback.FeedbackActivity' il feedback verrebbe probabilmente a Google. Perché qualcuno dovrebbe farlo? – ozbek

+0

Suppongo che finirà su Google Play Console di reporting dell'applicazione. – pixel

risposta

2

Quindi sembra possibile, il rapporto non è visibile nella Console per gli sviluppatori.

@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

Ehi, grazie per aver trovato questo! Anche se non viene visualizzato nella tua console, non sono sicuro di cosa ti piaccia. L'invio di segnalazioni di bug nel vuoto non le aiuterà a risolverli ... :-) – CommonsWare

+0

Forse Google sta pianificando di fornire tali rapporti di feedback, dal momento che hanno rimosso la possibilità di raccogliere i registri ... – pixel

+0

+1, attualmente non utile, ma più interessante! – matiash

1

Anche se non è esattamente lo stesso, di programmazione è possibile richiamare un crash-rapporto-dialogo:

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

Maggiori informazioni qui: http://blog.tomtasche.at/2012/10/use-built-in-feedback-mechanism-on.html

+0

In realtà vorrei raccogliere il feedback non necessario relativo agli arresti anomali. – pixel

0

Basta ricreare il layout su un file .xml e creare una classe che estenda FragmentActivity (come sembra fare l'app Google Hangouts) o creare una classe che estenda DialogFragment per gestire la sua logica.

Problemi correlati