Home location Flutter GPS Location
Flutter GPS Location
24365onlineservices
01:43
In this tutorial , we try to fetch phone GPS Location.
I used this library in pubspec.yaml file under dependencies
dependencies : location : ^2.3.5 Android # In order to use this plugin in Android, you have to add this permission in AndroidManifest.xml :
<uses-permission android:name ="android.permission.ACCESS_FINE_LOCATION" />
Permission check for Android 6+ was added.
And to use it in iOS, you have to add this permission in Info.plist :
NSLocationWhenInUseUsageDescription NSLocationAlwaysUsageDescription
Warning: there is a currently a bug in iOS simulator in which you have to manually select a Location several in order for the Simulator to actually send data. Please keep that in mind when testing in iOS simulator.
main.dart 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import 'package:flutter/material.dart' ;import 'package:flutter_app_sample/GetLocationPage.dart' ;void main() => runApp(MyApp());class MyApp extends StatelessWidget { // This widget is the root of your application. @ override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter GPS' , theme: ThemeData( primarySwatch: Colors.blue, ), home: GetLocationPage(), ); } }
GetLocationPage.dart 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 import 'package:flutter/material.dart' ;import 'package:location/location.dart' ;class GetLocationPage extends StatefulWidget { @ override _GetLocationPageState createState() => _GetLocationPageState(); }class _GetLocationPageState extends State< GetLocationPage> { LocationData _currentLocation; Location _locationService = new Location(); @ override void initState() { // TODO: implement initState super .initState(); _getLocation().then((value) { setState(() { _currentLocation = value; }); }); } @ override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: < Widget> [ _currentLocation == null ? CircularProgressIndicator() : Text("Location:" + _currentLocation.latitude.toString() + " " + _currentLocation.longitude.toString()), Padding( padding: const EdgeInsets.all(8.0 ), child: RaisedButton( onPressed: () { _getLocation().then((value) { setState(() { _currentLocation = value; }); }); }, color: Colors.blue, child: Text( "Get Location" , style: TextStyle(color: Colors.white), ), ), ), ], ), ), ); } Future< LocationData> _getLocation() as ync { LocationData currentLocation; try { currentLocation = await _locationService.getLocation(); } catch (e) { currentLocation = null ; } return currentLocation; } }
';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();