{"id":21003082,"url":"https://github.com/jerazo7/flutter-traccar-client","last_synced_at":"2025-03-13T14:14:09.135Z","repository":{"id":127567757,"uuid":"238229897","full_name":"JErazo7/flutter-traccar-client","owner":"JErazo7","description":null,"archived":false,"fork":false,"pushed_at":"2020-03-06T19:27:08.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T10:11:16.356Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JErazo7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-04T14:46:50.000Z","updated_at":"2020-12-11T00:42:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"94892c8f-74d0-4bea-a08d-18c88a8e8422","html_url":"https://github.com/JErazo7/flutter-traccar-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JErazo7%2Fflutter-traccar-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JErazo7%2Fflutter-traccar-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JErazo7%2Fflutter-traccar-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JErazo7%2Fflutter-traccar-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JErazo7","download_url":"https://codeload.github.com/JErazo7/flutter-traccar-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243419128,"owners_count":20287806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T08:22:47.794Z","updated_at":"2025-03-13T14:14:09.108Z","avatar_url":"https://github.com/JErazo7.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Mika GPS conductor!\nAplicación móvil  multiplataforma que accede al GPS de los teléfonos para obtener y emitir la ubicación en tiempo real a un servidor *Traccar* mediante el protocolo *OsmAnd* . \n\n## Obtención de los datos del GPS\nPara acceder al dispositivo GPS de los teléfonos, la aplicación utiliza el paquete [geolocator](https://pub.dev/packages/geolocator),  que es un complemento de geolocalización de Flutter que proporciona un fácil acceso a los servicios de ubicación específicos de la plataforma ( FusedLocationProviderClient o, si no está disponible, el LocationManager en Android y CLLocationManager en iOS).\n\n### Implementación:\nEl siguiente código se encuentra en el archivo ***main.dart***  y se utiliza  para la obtención de la ubicación de los dispositivos.\n\n    import  'package:geolocator/geolocator.dart';\n    \n\tStreamSubscription\u003cPosition\u003e positionStream;\n\t\n\tvar geolocator = Geolocator();\n\tvar locationOptions = LocationOptions(accuracy: LocationAccuracy.high, distanceFilter: frecuencia);\n\t\n\tpositionStream = geolocator.getPositionStream(locationOptions)\n\t\t.listen((Position position) async {}\ndónde:\n  \n - `LocationOptions` - Clase del paquete Geolocator que permite setear la configuración del nivel de precisión y la frecuencia con los que se obtienen los datos del GPS.\n -   `getPositionStream` - Método de la clase Geolocator() que permite suscribirse y escuchar los cambios de la ubicación que emite el GPS para proceder con las respectivas actualización de ubicación al servidor de Traccar. \n - \n### Permisos:\n - **Android**:\n En Android, deberá agregar el permiso  `ACCESS_FINE_LOCATION`  a su Android Manifest. Para hacerlo, debe abrir el archivo AndroidManifest.xml (ubicado en android/app/src/main) y agregar la siguiente línea de código como elementos secundarios directos de la `\u003cmanifest\u003e`etiqueta:\n\t ```xml\n\t\u003cuses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" /\u003e\n\t```\n \n \n -  **iOS** : \nEn iOS,  para acceder a la ubicación del dispositivo, deberá agregar `NSLocationWhenInUseUsageDescription` , `NSLocationAlwaysUsageDescription` y `NSLocationAlwaysAndWhenInUseUsageDescription`  a su archivo Info.plist (ubicado en ios/Runner/Base.lproj). Simplemente abra su archivo Info.plist y agregue lo siguiente:\n\t```xml\n\t\u003ckey\u003eNSLocationWhenInUseUsageDescription\u003c/key\u003e\n\t\u003cstring\u003eThis app needs access to location when open.\u003c/string\u003e\n\t\u003ckey\u003eNSLocationAlwaysUsageDescription\u003c/key\u003e\n\t\u003cstring\u003eThis app needs access to location when in the background.\u003c/string\u003e\n\t\u003ckey\u003eNSLocationAlwaysAndWhenInUseUsageDescription\u003c/key\u003e\n\t\u003cstring\u003eThis app needs access to location when open and in the background.\u003c/string\u003e\n\t```\n\n## Conexión con Traccar\nPara comunicarse con *Traccar*, la aplicación utiliza el paquete [http](https://pub.dev/packages/http), que es una biblioteca que se basa en promesas para realizar solicitudes HTTP.\n\nEl formato de dirección web que admite el protocolo OsmAnd en Traccar es el siguiente:\n\u003ehttp://demo.traccar.org:5055/?id=123456\u0026lat={0}\u0026lon={1}×tamp={2}\u0026hdop={3}\u0026altitude={4}\u0026speed={5}\n\ndónde:\n-   `demo.traccar.org` - Dirección del servidor o nombre de dominio (por ejemplo, puede ser la dirección IP pública de su servidor)\n-   `123456` - Identificador único de su dispositivo asignado en Traccar.\n\nPara enviar la ubicación al servidor la aplicación utiliza las siguientes lineas de código que se encuentran en el archivo ***main.dart***:\n\n    import  'package:http/http.dart'  as http;\n    \n    final http.Client httpClient = http.Client();\n    \n    var response = await httpClient\n    .post(finalUrl, body: {'id': id, 'lat': lat, 'lon': lon});\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerazo7%2Fflutter-traccar-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerazo7%2Fflutter-traccar-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerazo7%2Fflutter-traccar-client/lists"}