startForegroundTask method
Start the foreground service
Implementation
Future<bool> startForegroundTask() async {
debugPrint("[DEBUG] Starting foreground location service at ${DateTime.now()}");
// Check if the foreground service is already running
final isRunning = await FlutterForegroundTask.isRunningService;
if (isRunning) {
debugPrint("[DEBUG] Foreground service is already running at ${DateTime.now()}");
return true;
}
// Request notification permission for foreground service
final notificationPermission = await FlutterForegroundTask.checkNotificationPermission();
if (notificationPermission == NotificationPermission.denied) {
debugPrint("[DEBUG] Requesting notification permission at ${DateTime.now()}");
final permissionResult = await FlutterForegroundTask.requestNotificationPermission();
if (permissionResult == NotificationPermission.denied) {
debugPrint("[ERROR] Notification permission denied at ${DateTime.now()}");
return false;
}
}
// Register the foreground task
bool success = await FlutterForegroundTask.startService(
notificationTitle: 'Rali Navigation',
notificationText: 'Rali is using your location for navigation',
callback: startLocationTracking,
);
debugPrint("[DEBUG] Foreground service start result: $success at ${DateTime.now()}");
return success;
}