|
- import 'package:flutter/material.dart';
- import 'package:location/location.dart';
-
- class PermissionStatusWidget extends StatefulWidget {
- const PermissionStatusWidget({Key key}) : super(key: key);
-
- @override
- _PermissionStatusState createState() => _PermissionStatusState();
- }
-
- class _PermissionStatusState extends State<PermissionStatusWidget> {
- final Location location = Location();
-
- PermissionStatus _permissionGranted;
-
- Future<void> _checkPermissions() async {
- final PermissionStatus permissionGrantedResult =
- await location.hasPermission();
- setState(() {
- _permissionGranted = permissionGrantedResult;
- });
- }
-
- Future<void> _requestPermission() async {
- if (_permissionGranted != PermissionStatus.granted) {
- final PermissionStatus permissionRequestedResult =
- await location.requestPermission();
- setState(() {
- _permissionGranted = permissionRequestedResult;
- });
- if (permissionRequestedResult != PermissionStatus.granted) {
- return;
- }
- }
- }
-
- @override
- Widget build(BuildContext context) {
- return Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: <Widget>[
- Text(
- 'Permission status: ${_permissionGranted ?? "unknown"}',
- style: Theme.of(context).textTheme.body2,
- ),
- Row(
- children: <Widget>[
- Container(
- margin: const EdgeInsets.only(right: 42),
- child: RaisedButton(
- child: const Text('Check'),
- onPressed: _checkPermissions,
- ),
- ),
- RaisedButton(
- child: const Text('Request'),
- onPressed: _permissionGranted == PermissionStatus.granted
- ? null
- : _requestPermission,
- )
- ],
- )
- ],
- );
- }
- }
|