// import 'dart:async';
//
// import 'package:amap_flutter_location/amap_flutter_location.dart';
// import 'package:amap_flutter_location/amap_location_option.dart';
// import 'package:permission_handler/permission_handler.dart';
//
// /*
// //使用
//
//     locationUtil.getCurrentLocation((Map result){
//       print('接收到result:$result');
//     }).catchError((err){
//       Fluttertoast.showToast(msg: err);
//     });
//
// */
//
// class AmapLocationUtil {
//   StreamSubscription<Map<String, Object>>? _locationListener;
//   final AMapFlutterLocation _locationPlugin = AMapFlutterLocation();
//   PermissionStatus? status;
//
//   AmapLocationUtil() {
//     /// [hasShow] 隐私权政策是否弹窗展示告知用户
//     AMapFlutterLocation.updatePrivacyShow(true, true);
//
//     /// [hasAgree] 隐私权政策是否已经取得用户同意
//     AMapFlutterLocation.updatePrivacyAgree(true);
//
//     ///设置Android和iOS的apiKey<br>
//     AMapFlutterLocation.setApiKey(
//         "1dbf56e2e8a4d0e4cdc2df9efd36bc71", "dfb64c0463cb53927914364b5c09aba0");
//   }
//
//   /// 动态申请定位权限
//   Future<bool> _requestPermission() async {
//     status = await Permission.location.status;
//
//     if (status == PermissionStatus.granted) {
//       return true;
//     } else {
//       //未授权则发起一次申请
//       status = await Permission.location.request();
//       print('status=$status');
//       if (status == PermissionStatus.granted) {
//         return true;
//       } else {
//         return false;
//       }
//     }
//   }
//
//   Future<void> getCurrentLocation(Function(Map result) onLocationChanged,
//       {once = false}) async {
//     bool isPermitted = await _requestPermission();
//     print('isPermitted=$isPermitted');
//     if (!isPermitted) {
//       throw ('请在手机设置中开启本app位置权限');
//     }
//
//     if (isPermitted) {
//       ///注册定位结果监听
//       _locationListener = _locationPlugin
//           .onLocationChanged()
//           .listen((Map<String, Object> result) {
//         onLocationChanged(result);
//         if (result['longitude'] != null) {
//           print("当前位置：$result");
//           if (once) _stopLocation();
//         }
//       });
//       _startLocation();
//     }
//   }
//
//   ///设置定位参数
//   void _setLocationOption() {
//     AMapLocationOption locationOption = AMapLocationOption();
//
//     ///将定位参数设置给定位插件
//     _locationPlugin.setLocationOption(locationOption);
//   }
//
//   ///开始定位
//   void _startLocation() {
//     _setLocationOption();
//     _locationPlugin.startLocation();
//   }
//
//   ///停止定位
//   void _stopLocation() {
//     _locationPlugin.stopLocation();
//   }
//
//   void cancel() {
//     if (null != _locationListener) {
//       _locationListener?.cancel(); // 停止定位
//     }
//   }
// }
