Android hat, von ICS an (glaube ich), die Fähigkeit für einen Benutzer zur Verfügung gestellt, den Systemzustand zu erfassen und dann die erfassten Daten zu senden oder zu teilen, mit wem sie es wünschen. Siehe Was bedeutet es, wenn ein Fehlerbericht erfasst wurde? Android Tablet?
Die erfassten Daten enthalten einen Screenshot, eine Liste der laufenden Prozesse, Logcat-Inhalte, aktive Threads für jeden Prozess, usw.
Das ist fantastisch nützlich, aber das Auslösen scheint den Benutzer zu veranlassen, lustige Tastenkombinationen (Power + VolumeUp + VolumeDown) zu drücken oder den Entwicklermodus zu aktivieren und bestimmte Optionen von dort auszuwählen ( Take bug report , < Stark> Power-Menü Fehlerberichte ).
Gibt es eine Möglichkeit, das ich aus meinem eigenen Code auslösen kann, damit ich meinen Benutzern eine einfache Menüoption anbieten kann, um einen Fehlerbericht zu erfassen?
Lesen Sie den Link, den Sie gepostet haben - Was bedeutet es mit Fehlerbericht in Android Tablet erfasst?
Die als richtig markierte Antwort lautet: bugmailer.sh
in system/bin
macht das Reporting.
Also, theoretisch, wenn Sie einen App-Absturz mit diesen Methoden bugmailer.sh
Quelle für bugmailer.sh
: Ссылка
Sie werden jedoch feststellen, dass dies offensichtlich nur für gerootete Telefone funktioniert, wenn Sie die Quelle lesen.
Der einfachste Weg wäre, Developer options
zu öffnen und ein System-Overlay-Fenster zu haben, das darauf zeigt, worauf sie klicken sollten. Dies wäre die einzige benutzerfreundliche Lösung für nicht gerootete Telefone.
Sie können die Developer options
mit
Weitere Referenz .
Ich habe einen Weg gefunden, aber es erfordert root.
Was für einen Fehlerbericht verantwortlich ist, ist dumpstate.c .
usage: dumpstate [-b soundfile] [-e soundfile] [-o datei [-d] [-p] [-z]] [-s] [-q]
-o: In Datei schreiben (anstelle von stdout)
-d: hängt das Datum an den Dateinamen an (erfordert -o)
-z: gzip Ausgabe (erfordert -o) -p: Screenshot in Dateiname.png aufnehmen (erfordert -o)
-s: Ausgabe an Steuer-Socket schreiben (für Init)
-b: Sounddatei abspielen statt vibrieren, am Anfang des Jobs -e: Sounddatei abspielen statt vibrieren, am Ende des Jobs -q: disable vibration
-B: Sende Broadcast wenn fertig (erfordert -o und -p)
Wenn dumpstate
mit dem Parameter -B
aufgerufen wird, wird nach dem gesendet /master/packages/Shell/src/com/android/shell/BugreportReceiver.java">BugreportReceiver behandelt Warnungen des Benutzers und teilt das Ergebnis mit.
Ich habe es nicht versucht, aber jeder, der Root-Rechte hat, kann dumpstate
like
um es auszulösen.
Soweit ich weiß, haben Nutzer die Möglichkeit, Google Play einen Absturz zu melden.
Es gibt Seiten, die diese Funktionalität bieten, aber Ссылка zum Beispiel ist einfach zu integrieren und bietet auch graddle/maven
support. Wenn Sie Websites wie diese verwenden, teilen Sie Ihre Daten jedoch höchstwahrscheinlich mit ihnen. Das wird ein Handel von dir sein müssen.
Gibt es eine Möglichkeit, das ich aus meinem eigenen Code auslösen kann, damit ich es kann bieten Sie meinen Benutzern eine einfache Menüoption, um einen Fehlerbericht zu erfassen?
Es gibt eine Bibliothek namens ACRA (Anwendung Absturzberichte für Android) , die Sie senden können Absturzberichte an beliebige Ziele aus Ihrem eigenen Code. Vom Entwickler konfigurierbare Benutzerinteraktionen wie z. B. unbeaufsichtigte Berichte, Toastbenachrichtigungen, Statusleistenbenachrichtigungen + Dialog oder Direktdialog sind verfügbar.
Sie können Ihre eigenen Log-Datei-Extrakte sowie Logcat, Eventlog oder Radiolog zu Berichten hinzufügen. Es ist ein sehr nützliches Tool für die Analyse von Crash-Daten und Reports für Entwickler.
Siehe auch BasicSetup und AdvancedUsage .
Tags und Links android debugging logcat android-debug