Send one explicitly requested position to the configured OsmAnd receiver without enabling continuous tracking.
Scope
Use URLSession with form POST encoding following the official client: device identifier, original timestamp in epoch seconds, available coordinates and optional accuracy, altitude, speed, bearing, battery and charging values.
Match official OsmAnd speed encoding in knots; do not invent missing fields or send invalid unavailable optional measurements.
Support HTTP/HTTPS, IP/domain, custom ports and paths without assuming a related web/API URL or controlling server infrastructure.
Verify certificates for HTTPS. Obtain explicit acknowledgement before the first HTTP transmission for a destination and again after relevant destination/security changes. Do not downgrade TLS errors or redirect HTTPS silently to HTTP.
Keep manual sending separate from the background queue. Report failure rather than marking a point accepted or silently draining old positions. Follow the official direct-send path without automatic delayed manual retries.
Acceptance criteria
The local receiver observes correct field encoding, units and timestamps, including absent optional fields.
HTTP 2xx means accepted by the receiver; non-2xx/network/TLS/timeout failures remain failures.
A manual send preserves the prior continuous-tracking state and works while paused after explicit permission/HTTP acknowledgement when needed.
Saving Settings or opening the app never triggers a send.
Redirect handling does not disclose payloads to an unapproved destination or bypass the configured transport policy.
Validation
Run synthetic local transport tests and a native one-shot acquisition smoke check without automatically transmitting real coordinates. A real external receiver test requires separate authorization.
Add or extend this feature's meaningful deterministic tests in the CI workflow from PROTO-002 as part of the same implementation, without waiting for the final milestone. Keep physical-Mac checks explicitly manual.
References
Pinned official source references for implementation comparison; mobile APIs are not assumed available on macOS.
Originally created by @jayanezj on GitHub (Oct 23, 2026).
Original GitHub issue: https://github.com/jayanezj/traccar-client-macos/issues/6
## Goal
Send one explicitly requested position to the configured OsmAnd receiver without enabling continuous tracking.
## Scope
- Use URLSession with form POST encoding following the official client: device identifier, original timestamp in epoch seconds, available coordinates and optional accuracy, altitude, speed, bearing, battery and charging values.
- Match official OsmAnd speed encoding in knots; do not invent missing fields or send invalid unavailable optional measurements.
- Support HTTP/HTTPS, IP/domain, custom ports and paths without assuming a related web/API URL or controlling server infrastructure.
- Verify certificates for HTTPS. Obtain explicit acknowledgement before the first HTTP transmission for a destination and again after relevant destination/security changes. Do not downgrade TLS errors or redirect HTTPS silently to HTTP.
- Keep manual sending separate from the background queue. Report failure rather than marking a point accepted or silently draining old positions. Follow the official direct-send path without automatic delayed manual retries.
## Acceptance criteria
- [ ] The local receiver observes correct field encoding, units and timestamps, including absent optional fields.
- [ ] HTTP 2xx means accepted by the receiver; non-2xx/network/TLS/timeout failures remain failures.
- [ ] A manual send preserves the prior continuous-tracking state and works while paused after explicit permission/HTTP acknowledgement when needed.
- [ ] Saving Settings or opening the app never triggers a send.
- [ ] Redirect handling does not disclose payloads to an unapproved destination or bypass the configured transport policy.
## Validation
Run synthetic local transport tests and a native one-shot acquisition smoke check without automatically transmitting real coordinates. A real external receiver test requires separate authorization.
Add or extend this feature's meaningful deterministic tests in the CI workflow from [PROTO-002](https://github.com/jayanezj/traccar-client-macos/issues/2) as part of the same implementation, without waiting for the final milestone. Keep physical-Mac checks explicitly manual.
## References
Pinned official source references for implementation comparison; mobile APIs are not assumed available on macOS.
- [Official source 1](https://github.com/traccar/traccar-client-sdk/blob/a297767642e98193eb7939cbb4d54c101ff23610/core/src/commonMain/kotlin/org/traccar/client/HttpUploader.kt)
- [Official source 2](https://github.com/traccar/traccar-client-sdk/blob/a297767642e98193eb7939cbb4d54c101ff23610/core/src/commonMain/kotlin/org/traccar/client/Tracker.kt)
## Dependencies
- [PROTO-003](https://github.com/jayanezj/traccar-client-macos/issues/3)
- [PROTO-004](https://github.com/jayanezj/traccar-client-macos/issues/4)
- [PROTO-005](https://github.com/jayanezj/traccar-client-macos/issues/5)
<!-- planning-id: PROTO-006 -->
jayanezj
added this to the M3 - Transport and SOS milestone 2026-10-23 18:09:14 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @jayanezj on GitHub (Oct 23, 2026).
Original GitHub issue: https://github.com/jayanezj/traccar-client-macos/issues/6
Goal
Send one explicitly requested position to the configured OsmAnd receiver without enabling continuous tracking.
Scope
Acceptance criteria
Validation
Run synthetic local transport tests and a native one-shot acquisition smoke check without automatically transmitting real coordinates. A real external receiver test requires separate authorization.
Add or extend this feature's meaningful deterministic tests in the CI workflow from PROTO-002 as part of the same implementation, without waiting for the final milestone. Keep physical-Mac checks explicitly manual.
References
Pinned official source references for implementation comparison; mobile APIs are not assumed available on macOS.
Dependencies