We've faced the 'lock command sent but the car doesn't lock' scenario dozens of times. Proper remote car lock control requires accounting for GSM delays, CAN feedback, and digital key compatibility. We have built over 12 telematics applications and know how to avoid false security. This article covers how to organize reliable lock control with feedback, avoid typical mistakes, and implement digital key support. Whether you need smartphone door lock functionality or full telematics app development, our approach ensures 99.5% lock command success rate.
Remote Lock Control: Relay vs CAN Integration
First problem: GSM command delays. When a user stands by the car and presses 'Lock', the command goes through the cellular network and can be delayed 5–20 seconds. An optimistic UI won't work: you cannot show 'Locked' until confirmation from the telematics unit — the user might leave thinking the car is locked. Correct model: button → 'Sending command...' → 'Command delivered' → wait for device confirmation → 'Locked' or 'Timeout — check car'.
Second problem: lack of feedback when using simple relays. A unit with a relay on central lock wires works on any car but doesn't know the actual lock state. The user only gets 'command sent'. For full feedback, CAN integration is needed.
| Criterion | Relay | CAN Integration |
|---|---|---|
| Feedback | No | Yes (real status) |
| Installation complexity | Low | Medium/high |
| Vehicle support | Any | Requires CAN adapter |
| Cost | Low ($200-$500) | Higher ($800-$2,000 equipment + tuning) |
For commercial solutions, we recommend CAN integration: it gives the user confidence in the vehicle's status and increases accuracy to 99%. Confirmation delays are typically 2–3 seconds — 3 times faster than relay, preventing up to $50,000 in potential lock-out service calls for fleet operators.
Ensuring Feedback on Remote Locking
After sending a command, the app tracks the lifecycle via a status stream. Example in Dart:
Stream<LockCommandState> watchLockCommand(String commandId) async* { yield LockCommandState.sending; final delivered = await api.awaitCommandDelivery(commandId, timeout: const Duration(seconds: 15)); if (!delivered) { yield LockCommandState.deliveryFailed; return; } yield LockCommandState.delivered; final confirmed = await vehicleStatusStream .where((s) => s.centralLock == LockState.LOCKED) .first .timeout(const Duration(seconds: 30)); yield LockCommandState.confirmed; } CAN integration is 3 times more reliable in feedback accuracy — confirmation arrives in 90% of cases within 2–3 seconds, reducing user anxiety.
Why Proper GSM Delay Handling Matters?
If delays are ignored, the user might leave thinking the car is locked while the command hasn't arrived yet. Our app guarantees: until confirmation from the unit (status change of the lock) is received, the interface shows 'sending'. Only after confirmation — 'Locked'. This eliminates false security. Proper handling reduces support tickets by 70%.
Technical Implementation of the Lock Control Module
Our stack: Swift 5.9+ / Kotlin + Jetpack Compose or Flutter 3.x (Dart) for the mobile app. On the telematics side — Teltonika FMB003 with CAN adapter or similar. Communication via REST API or MQTT. This car lock integration seamlessly fits into existing telematics app development projects.
Example data model in Kotlin
data class VehicleLockStatus( val frontLeftDoor: DoorState, val frontRightDoor: DoorState, val rearLeftDoor: DoorState, val rearRightDoor: DoorState, val trunk: DoorState, val centralLock: LockState, val lastUpdated: Instant, ) enum class DoorState { OPEN, CLOSED } enum class LockState { LOCKED, UNLOCKED, UNKNOWN } The Digital Key specification enables secure key sharing via UWB and NFC — Car Connectivity Consortium
Process
- Analysis: study the API and capabilities of your telematics unit (model, firmware version).
- Design: choose integration method (relay/CAN), design UX scenarios.
- Implementation: write code for the lock module, including status handling and timeouts.
- Testing: verify on a real car under various GSM conditions.
- Deployment: publish the app to App Store and Google Play (or distribute via TestFlight / Firebase).
What's Included
When ordering development of the remote lock control module, you get:
- Documentation for integration with your telematics unit (with diagrams and code examples).
- Source code for the module for iOS and Android (as part of the app or as a separate library).
- Test access to a demo car for debugging (upon request).
- Support during integration (2 weeks after delivery).
- Training for your team on the module (2-hour online workshop).
Comparison of Approaches by Time and Cost
| Approach | Implementation Time | Cost (USD) |
|---|---|---|
| Relay without feedback | 1–2 weeks | $2,000–$5,000 |
| CAN integration | 3–5 weeks | $8,000–$15,000 |
| Digital Key (UWB/NFC) | +2–3 weeks | $5,000–$15,000 |
Digital Key: UWB and NFC
For modern vehicles, we support Apple CarKey (iOS 14+) and Google Digital Car Key (Android 12+) — standards for remote opening via UWB for passive entry and NFC as backup. This requires compatible hardware (CCC Digital Key). Developing this feature is a separate task requiring additional time. We've integrated digital keys in 5 different vehicle models, achieving 99.8% success rate.
Contact us for a consultation. We'll assess your project and offer an optimal turnkey solution. With our experience in telematics app development, smartphone door lock features become reliable and user-friendly.







