2016-06-15 4 views
3

Die Activity Recognition kann viele False Positives auslösen, egal wie hoch Sie das Konfidenzniveau erhöhen. Wenn ich zum Beispiel eine Benachrichtigung senden möchte, wenn der Benutzer fährt, müsste ich eine Art Zustandsmaschine bauen.Verbessern Sie die Activity Recognition API und filtern Sie False Positives.

Zum Beispiel:

Wenn ich IN_VEHICLE Updates mit CONFIDENCE > 70 für 30 Sekunden erhalten, sende ich eine Benachrichtigung

oder

Wenn ich 3 aufeinanderfolgende IN_VEHICLE Updates mit CONFIDENCE > 70 ich eine Benachrichtigung senden

Es gibt jedoch verschiedene Probleme bei der Implementierung. Manchmal bekommen Sie sehr häufige Updates (2. Fehler) oder Sie haben sehr seltene Updates (1. Fehler).

Wie können Sie das Design so gestalten, dass Sie weichere Übergänge zwischen Zuständen haben?

Antwort

1

Ich denke, dieses Tutorial - How to Recognize User Activity With Activity Recognition wird Ihnen helfen. Wie im Tutorial erwähnt, ist die Kontexterstellung Ihrer Anwendung eine der besten Möglichkeiten, Ihren Benutzern nützliche Dienste anzubieten.

In Activity Recognition Handhabung:

Im onHandleIntent() Methode von ActivityRecognizedService Sie das erste, was zu tun ist, bestätigen, dass die empfangene Intent Aktivität Erkennungsdaten enthält. Wenn dies der Fall ist, können Sie die ActivityRecognitionResult aus der Intent extrahieren, um zu sehen, welche Aktivitäten Ihr Benutzer ausführen könnte. Sie können eine Liste der möglichen Aktivitäten abrufen, indem Sie getProbableActivities() auf dem Objekt ActivityRecognitionResult aufrufen.

Verwendete Quelldateien finden Sie in GitHub - Android-ActivityRecognition.

+0

Teyam, danke für deine Antwort, aber ich denke du hast die Frage verpasst. Während verschiedener Bewegungen kann man, wie beim Laufen, die api tricksen, um zu melden, dass man sich für eine kurze Zeit im Fahrzeug befindet, und dann erkennt man, dass man wieder geht. Sie müssen zusätzlich zu den grundlegenden Einstellungen, die Ihr Link abdeckt, zusätzliche Filter und Logik implementieren. –