Wie zu verwenden CMMotionActivityManager und updates erhalten?
Ich möchte eine app erstellen kann, empfangen und Bearbeiten von motion-Aktualisierungen, um zu verstehen, wenn der Benutzer stationär, gehen, laufen oder auf einem transport.
Ich habe gesehen, auf den Hinweis, dass CMMotionActivityManager kann nützlich sein für mich.
Den CMMotionActivityManager Klasse bietet Zugriff auf die motion-Daten, die von einem Gerät. Motion-Daten reflektiert, ob der Nutzer zu Fuß, laufen, in einem Fahrzeug oder stationär für die Dauer der Zeit.
Ich bin neu in der app Entwicklung und ich verstehe nicht, wie die Methode verwendet, die für den Start der Aktualisierung.
Die Methode dafür ist die - (void)startActivityUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMMotionActivityHandler)handler
.
Ich verstehe nicht, was soll ich schreiben auf handler denn die Referenz sagt:
handler
Der block ausgeführt wird, wenn eine änderung in der aktuellen Art der Bewegung erkannt wird. Für Informationen über die Parameter des Blocks, siehe CMMotionActivityHandler. Diese Eigenschaft darf nicht null.
Meine Umsetzung:
- (IBAction)startButtonPressed:(id)sender {
_motionActivityManager = [[CMMotionActivityManager alloc] init];
[_motionActivityManager startActivityUpdatesToQueue:NSOperationQueueDefaultMaxConcurrentOperationCount withHandler:CMMotionActivityHandler];
}
Hab ich auch schon importiert, die CoreMotion-framework
Aber XCode nicht erkennen CMMotionActivityHandler
, wo bin ich falsch? Wie kann ich dieses problem beheben?
Dank
InformationsquelleAutor emattiazzi | 2014-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beispielcode :
Vielleicht funktioniert es nicht auf dem simulator?
Natürlich funktioniert es nicht auf simulator. Sie haben check-in-Gerät.
InformationsquelleAutor Bhavin
Den höchsten gestimmt version dieser Antwort ist ein bisschen Kreisverkehr. Es erstellt eine Warteschlange, aber dann verwendet GCD zu führen zurück auf das Haupt-queue. Auch, viele Beispiele, setzen Sie einen block innerhalb der
withHandler
parameter, aber das finde ich klobig und sieht nicht so sauber (von einem code-Formatierung Perspektive).Hier mein Beispiel-Implementierung:
InformationsquelleAutor mikeho
//prüfen, ob availasble auf dem Gerät
Bitte überprüfen Sie auf dem Gerät
InformationsquelleAutor user3272090
Swift 2.0
InformationsquelleAutor Aggressor