current static method

Future<ULocationResult> current({
  1. ULocationAccuracy accuracy = ULocationAccuracy.high,
  2. Duration timeout = const Duration(seconds: 20),
  3. Duration? maxAge,
  4. bool askPermission = true,
})

Implementation

static Future<ULocationResult> current({
  ULocationAccuracy accuracy = ULocationAccuracy.high,
  Duration timeout = const Duration(seconds: 20),
  Duration? maxAge,
  bool askPermission = true,
}) async {
  final ULocationError? blocked = askPermission ? await ensureReady() : _blocking(await permission());
  if (blocked != null) return ULocationResult.failure(blocked);
  if (kIsWeb) return ULocationWeb.current(accuracy: accuracy, timeout: timeout, maxAge: maxAge);
  try {
    final Map<Object?, Object?>? raw = await _channel.invokeMethod<Map<Object?, Object?>>("current", <String, Object?>{
      "accuracy": accuracy.name,
      "timeoutMs": timeout.inMilliseconds,
      "maxAgeMs": maxAge?.inMilliseconds,
    });
    return raw == null ? const ULocationResult.failure(ULocationError.unavailable) : ULocationResult.success(UPosition.fromMap(raw));
  } on PlatformException catch (e) {
    return ULocationResult.failure(_error(e.code));
  } on MissingPluginException {
    return const ULocationResult.failure(ULocationError.unsupported);
  }
}