Kann ich die integrierte Fehlererkennungsfunktion von Android über meine App auslösen?

8

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?

    
Graham Borland 28.05.2014, 20:43
quelle

4 Antworten

1

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 , dann könnten Sie Ihre eigene Kopie von bugmailer.sh in der SD-Karte ausführen und einen Bericht erhalten.

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

öffnen %Vor%

Weitere Referenz .

    
Karthik Balakrishnan 08.06.2014 05:32
quelle
0

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

aufrufen %Vor%

um es auszulösen.

    
Onur 05.06.2014 00:02
quelle
0

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.

    
Gooey 08.06.2014 13:57
quelle
0
  

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 .

    
kolunar 26.10.2015 17:04
quelle