getAllSavedVehicles method
Retrieves all vehicles that have been saved by the user.
Returns a list of all Bluetooth devices that have been previously saved as vehicles. These devices are used for automatic trip detection and provide a way for users to manage their vehicle associations.
Returns:
List<NearbyDevice>: List of saved vehicle devices
Usage:
try {
final savedVehicles = await communicator.getAllSavedVehicles();
if (savedVehicles.isNotEmpty) {
print('You have ${savedVehicles.length} saved vehicles:');
for (final vehicle in savedVehicles) {
print('- ${vehicle.name} (${vehicle.address})');
}
} else {
print('No vehicles saved yet');
// Prompt user to scan and save their vehicle
}
// Check if a specific device is already saved
final isCarSaved = savedVehicles.any((v) => v.address == 'AA:BB:CC:DD:EE:FF');
} catch (e) {
print('Failed to get saved vehicles: $e');
}
Throws:
Future.error("Unable to get saved vehicle"): When retrieval fails
Device Information Includes:
- Name: Human-readable device name (e.g., "Honda CR-V", "Tesla Model 3")
- Address: Unique Bluetooth MAC address
- Signal Strength: RSSI value when device was discovered
- Device Type: Type of Bluetooth device
Use Cases:
- Vehicle management screens
- Displaying connected vehicle status
- Validating vehicle setup during onboarding
- Debugging trip detection issues
- Multi-vehicle household management
Important Notes:
- List persists across app restarts
- Devices may not always be currently connected
- Empty list indicates no vehicles have been configured
Implementation
Future<List<NearbyDevice>> getAllSavedVehicles() async {
try {
return await kruzr_comm.getAllSavedVehicles();
} on Exception catch (e, stackTrace) {
if (kDebugMode) {
print("Error in getAllSavedVehicles");
print(stackTrace);
print(e);
}
return Future.error("Unable to get all saved vehicle");
}
}