Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Configurar listeners
Depois de inicializar o SDK Driver e criar uma instância GMTDDeliveryDriverAPI, é possível configurar listeners de eventos para monitorar o sucesso ou a falha das atualizações de veículos enviadas ao Fleet Engine e ao seu back-end. Esses listeners podem
acionar ações no app para motoristas, como notificar o motorista se a
comunicação com o back-end falhar.
Detectar eventos de atualização do veículo
Quando o motorista ativa as atualizações de local no app para motoristas, o SDK Driver envia
atualizações regulares do veículo para o Fleet Engine e o back-end do cliente pela classe
GMTDDeliveryVehicleReporter. É possível fazer com que o app responda a eventos de
atualização configurando o protocolo GMTDVehicleReporterListener.
Com o GMTDVehicleReporterListener, é possível processar os seguintes eventos:
vehicleReporter:didSucceedVehicleUpdate
Informa ao app Driver que os serviços de back-end receberam a
atualização de estado e localização do veículo.
vehicleReporter:didFailVehicleUpdate:withError
Informa ao listener que uma atualização do veículo falhou. Enquanto o driver tiver as atualizações de
localização ativadas, a classe GMTDDeliveryVehicleReporter continuará
enviando os dados mais recentes para o Fleet Engine.
O exemplo a seguir mostra como configurar o GMTDVehicleReporterListener para
processar esses eventos:
Swift
importGoogleRidesharingDriverprivateletproviderID="INSERT_YOUR_PROVIDER_ID"classSampleViewController:UIViewController,GMTDVehicleReporterListener{privateletmapView:GMSMapViewoverridefuncviewDidLoad(){// Assumes you have implemented the sample code up to this step.deliveryDriverAPI.vehicleReporter.add(self)}funcvehicleReporter(_vehicleReporter:GMTDDeliveryVehicleReporter,didSucceedvehicleUpdate:GMTDVehicleUpdate){// Handle update succeeded.}funcvehicleReporter(_vehicleReporter:GMTDDeliveryVehicleReporter,didFailvehicleUpdate:GMTDVehicleUpdate,withErrorerror:Error){// Handle update failed.}}
Objective-C
SampleViewController.h@interfaceSampleViewController : UIViewController<GMTDVehicleReporterListener>@endSampleViewController.m#import "SampleViewController.h"#import "SampleAccessTokenProvider.h"#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>staticNSString*constPROVIDER_ID=@"INSERT_YOUR_PROVIDER_ID";@implementationSampleViewController{GMSMapView*_mapView;}-(void)viewDidLoad{// ASSUMES YOU IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.[delivervehicleReporteraddListener:self];}-(void)vehicleReporter:(GMTDDeliveryVehicleReporter*)vehicleReporterdidSucceedVehicleUpdate:(GMTDVehicleUpdate*)vehicleUpdate{// Handle update succeeded.}-(void)vehicleReporter:(GMTDDeliveryVehicleReporter*)vehicleReporterdidFailVehicleUpdate:(GMTDVehicleUpdate*)vehicleUpdatewithError:(NSError*)error{// Handle update failed.}@end
Ativar atualizações de localização
Para ativar as atualizações de localização, no app para motoristas em
GMTDDeliveryVehicleReporter, defina locationTrackingEnabled como
YES. Em seguida, a classe
GMTDDeliveryVehicleReporter envia automaticamente atualizações de local para o
Fleet Engine. Além disso, quando o GMSNavigator está no modo de navegação, ou seja, quando um destino é definido pelo setDestinations, a classe GMTDDeliveryVehicleReporter envia automaticamente atualizações de rota e de hora de chegada.
O SDK Driver define o trajeto para corresponder ao caminho de navegação atual do motorista. Para
garantir atualizações de local precisas, defina o ponto de referência em
-setDestinations:callback: para corresponder ao destino no Fleet Engine.
O exemplo a seguir mostra como ativar as atualizações de localização:
Swift
importGoogleRidesharingDriverprivateletproviderID="INSERT_YOUR_PROVIDER_ID"classSampleViewController:UIViewController,GMTDVehicleReporterListener{privateletmapView:GMSMapViewoverridefuncviewDidLoad(){// Assumes you have implemented the sample code up to this step.deliveryDriverAPI.vehicleReporter.locationTrackingEnabled=true}}
Objective-C
SampleViewController.m#import "SampleViewController.h"#import "SampleAccessTokenProvider.h"#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>staticNSString*constPROVIDER_ID=@"INSERT_YOUR_PROVIDER_ID";@implementationSampleViewController{GMSMapView*_mapView;}-(void)viewDidLoad{// ASSUMES YOU HAVE IMPLEMENTED THE SAMPLE CODE UP TO THIS STEP.deliveryDriverAPI.vehicleReporter.locationTrackingEnabled=YES;}@end
(Opcional) Definir o intervalo de atualização
Por padrão, quando você define locationTrackingEnabled como YES, o SDK do driver
envia atualizações de local para o Motor de frota em um intervalo de 10 segundos. É possível mudar
o intervalo de atualização com locationUpdateInterval para um mínimo de 5 segundos ou um máximo de 60 segundos. Atualizações mais frequentes podem resultar em solicitações mais lentas e erros.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-05 UTC."],[[["\u003cp\u003eThe Google Maps Delivery Driver SDK enables you to set up listeners to monitor the success or failure of vehicle updates sent to Fleet Engine and your backend.\u003c/p\u003e\n"],["\u003cp\u003eYou can listen for vehicle update events such as successful updates and failures, and trigger actions within your driver app accordingly.\u003c/p\u003e\n"],["\u003cp\u003eEnable location updates in the driver app to automatically send regular location and state updates to Fleet Engine and the customer backend.\u003c/p\u003e\n"],["\u003cp\u003eYou can optionally adjust the location update interval, with a default of 10 seconds and a range between 5 and 60 seconds.\u003c/p\u003e\n"],["\u003cp\u003eEnsure the waypoint in \u003ccode\u003esetDestinations\u003c/code\u003e matches the destination in Fleet Engine for accurate location updates during navigation.\u003c/p\u003e\n"]]],[],null,["# Get the vehicle ready\n\nSet up listeners\n----------------\n\nAfter initializing the Driver SDK and creating a `GMTDDeliveryDriverAPI`\ninstance, you can set up event listeners to monitor the success or failure of\nvehicle updates sent to Fleet Engine and your backend. These listeners can\ntrigger actions within your driver app, such as notifying the driver if\ncommunication with your backend fails.\n\n### Listen for vehicle update events\n\nWhen the driver enables location updates in the driver app, the Driver SDK sends\nregular vehicle updates to Fleet Engine and the customer backend through the\n`GMTDDeliveryVehicleReporter` class. You can have the app respond to update\nevents by setting up the `GMTDVehicleReporterListener` protocol.\n\nWith `GMTDVehicleReporterListener`, you can handle the following events:\n\n- `vehicleReporter:didSucceedVehicleUpdate`\n\n Informs the Driver app that the backend services successfully received the\n vehicle location and state update.\n- `vehicleReporter:didFailVehicleUpdate:withError`\n\n Informs the listener that a vehicle update failed. As long as the driver has\n location updates enabled, the `GMTDDeliveryVehicleReporter` class continues\n to send the latest data to Fleet Engine.\n\nThe following example shows how to set up `GMTDVehicleReporterListener` to\nhandle these events: \n\n### Swift\n\n import GoogleRidesharingDriver\n\n private let providerID = \"INSERT_YOUR_PROVIDER_ID\"\n\n class SampleViewController: UIViewController, GMTDVehicleReporterListener {\n private let mapView: GMSMapView\n\n override func viewDidLoad() {\n // Assumes you have implemented the sample code up to this step.\n deliveryDriverAPI.vehicleReporter.add(self)\n }\n\n func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didSucceed vehicleUpdate: GMTDVehicleUpdate) {\n // Handle update succeeded.\n }\n\n func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didFail vehicleUpdate: GMTDVehicleUpdate, withError error: Error) {\n // Handle update failed.\n }\n }\n\n### Objective-C\n\n SampleViewController.h\n @interface SampleViewController : UIViewController\u003cGMTDVehicleReporterListener\u003e\n @end\n\n SampleViewController.m\n #import \"SampleViewController.h\"\n #import \"SampleAccessTokenProvider.h\"\n #import \u003cGoogleRidesharingDriver/GoogleRidesharingDriver.h\u003e\n\n static NSString *const PROVIDER_ID = @\"INSERT_YOUR_PROVIDER_ID\";\n\n @implementation SampleViewController {\n GMSMapView *_mapView;\n }\n\n - (void)viewDidLoad {\n // ASSUMES YOU IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.\n [delivervehicleReporter addListener:self];\n }\n\n - (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didSucceedVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate {\n // Handle update succeeded.\n }\n\n - (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate withError:(NSError *)error {\n // Handle update failed.\n }\n\n @end\n\nEnable location updates\n-----------------------\n\nTo enable location updates, in the driver app on\n`GMTDDeliveryVehicleReporter`, set `locationTrackingEnabled` to\n`YES`. Then the\n`GMTDDeliveryVehicleReporter` class automatically sends location updates to\nFleet Engine. Additionally, when the `GMSNavigator` is in navigation mode, which\nis when a destination is set through `setDestinations`, the\n`GMTDDeliveryVehicleReporter` class automatically sends route and ETA updates.\n\nThe Driver SDK sets the route to match the driver's current navigation path. To\nensure accurate location updates, set the waypoint in\n`-setDestinations:callback:` to match the destination in Fleet Engine.\n\nThe following example shows how to enable location updates: \n\n### Swift\n\n import GoogleRidesharingDriver\n\n private let providerID = \"INSERT_YOUR_PROVIDER_ID\"\n\n class SampleViewController: UIViewController, GMTDVehicleReporterListener {\n private let mapView: GMSMapView\n\n override func viewDidLoad() {\n // Assumes you have implemented the sample code up to this step.\n deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = true\n }\n }\n\n### Objective-C\n\n SampleViewController.m\n #import \"SampleViewController.h\"\n #import \"SampleAccessTokenProvider.h\"\n #import \u003cGoogleRidesharingDriver/GoogleRidesharingDriver.h\u003e\n\n static NSString *const PROVIDER_ID = @\"INSERT_YOUR_PROVIDER_ID\";\n\n @implementation SampleViewController {\n GMSMapView *_mapView;\n }\n\n - (void)viewDidLoad {\n // ASSUMES YOU HAVE IMPLEMENTED THE SAMPLE CODE UP TO THIS STEP.\n deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = YES;\n }\n\n @end\n\n| **Note:** If the device has not moved since the last location update, the `GMSRoadSnappedLocationProvider` class does not send location updates continuously. For example, if a driver is waiting idle in the car. If you want to send a new location update, and have set `GMTDDeliveryVehicleReporter` as a listener after calling `startUpdatingLocation` on `GMSRoadSnappedLocationProvider`, you need to stop and start `GMSRoadSnappedLocationProvider`.\n\n### (Optional) Set the update interval\n\nBy default, when you set `locationTrackingEnabled` to `YES`, the Driver SDK\nsends location updates to Fleet Engine at a 10-second interval. You can change\nthe update interval with `locationUpdateInterval` to a minimum update interval\nof 5 seconds or a maximum of 60 seconds. More frequent updates may result in\nslower requests and errors."]]