current static method
Future<ULocationResult>
current({
- ULocationAccuracy accuracy = ULocationAccuracy.high,
- Duration timeout = const Duration(seconds: 20),
- Duration? maxAge,
- 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);
}
}