flutterlocation icon indicating copy to clipboard operation
flutterlocation copied to clipboard

Support for Linux

Open guyluz11 opened this issue 4 years ago • 3 comments

Is there any plans to add support for Linux?

image

In case Linux does not required any permission to be approved we can just continue instead of crashing

[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Unhandled error MissingPluginException(No implementation found for method hasPermission on channel lyokone/location) occurred in Instance of 'HubInNetworkBloc'.
#0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:7)
<asynchronous suspension>
#1      MethodChannelLocation.hasPermission (package:location_platform_interface/src/method_channel_location.dart:99:25)
<asynchronous suspension>
#2      HubConnectionRepository.searchForHub (package:cybear_jinni/infrastructure/hub_connection/hub_connection_repository.dart:84:28)
<asynchronous suspension>
#3      HubInNetworkBloc.mapEventToState.<anonymous closure> (package:cybear_jinni/application/hub_in_network/hub_in_network_bloc.dart:33:16)
<asynchronous suspension>

#0      BlocBase.onError.<anonymous closure> (package:bloc/src/bloc.dart:389:7)
#1      BlocBase.onError (package:bloc/src/bloc.dart:390:6)
#2      _rootRunBinary (dart:async/zone.dart:1378:47)
#3      _CustomZone.runBinary (dart:async/zone.dart:1272:19)
#4      _CustomZone.runBinaryGuarded (dart:async/zone.dart:1178:7)
#5      _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:360:15)
#6      _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:378:16)
#7      _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:280:7)
#8      _SyncBroadcastStreamController._sendError.<anonymous closure> (dart:async/broadcast_stream_controller.dart:393:20)
#9      _BroadcastStreamController._forEachListener (dart:async/broadcast_stream_controller.dart:323:15)
#10     _SyncBroadcastStreamController._sendError (dart:async/broadcast_stream_controller.dart:392:5)
#11     _BroadcastStreamController._addError (dart:async/broadcast_stream_controller.dart:290:5)
#12     _rootRunBinary (dart:async/zone.dart:1378:47)
#13     _CustomZone.runBinary (dart:async/zone.dart:1272:19)
#14     _CustomZone.runBinaryGuarded (dart:async/zone.dart:1178:7)
#15     _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:360:15)
#16     _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:378:16)
#17     _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:280:7)
#18     _ForwardingStreamSubscription._addError (dart:async/stream_pipe.dart:128:11)
#19     _ForwardingStream._handleError (dart:async/stream_pipe.dart:95:10)
#20     _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:157:13)
#21     _rootRunBinary (dart:async/zone.dart:1378:47)
#22     _CustomZone.runBinary (dart:async/zone.dart:1272:19)
#23     _CustomZone.runBinaryGuarded (dart:async/zone.dart:1178:7)
#24     _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:360:15)
#25     _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:378:16)
#26     _DelayedError.perform (dart:async/stream_impl.dart:602:14)
#27     _StreamImplEvents.handleNext (dart:async/stream_impl.dart:706:11)
#28     _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:663:7)
#29     _rootRun (dart:async/zone.dart:1346:47)
#30     _CustomZone.run (dart:async/zone.dart:1258:19)
#31     _CustomZone.runGuarded (dart:async/zone.dart:1162:7)
#32     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1202:23)
#33     _rootRun (dart:async/zone.dart:1354:13)
#34     _CustomZone.run (dart:async/zone.dart:1258:19)
#35     _CustomZone.runGuarded (dart:async/zone.dart:1162:7)
#36     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1202:23)
#37     _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
#38     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)

guyluz11 avatar Aug 17 '21 15:08 guyluz11

geoclue it's used in most Linux distributions as a dbus service for geoinformation: https://gitlab.freedesktop.org/geoclue/geoclue.

Canonical has already developed a native Dart client implementation of D-Bus.

So I guess all the pieces are there for Linux support now.

pablojimpas avatar Mar 07 '22 13:03 pablojimpas

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Apr 16 '22 17:04 stale[bot]

A geoclue Dart client it's now available.

pablojimpas avatar Apr 18 '22 10:04 pablojimpas