From 5b1540fa5c18bc8b2739f4ab06d2a7b7953c65bf Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 04 十二月 2021 18:24:30 +0800
Subject: [PATCH] 功能完善

---
 lib/utils/permission_util.dart |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/lib/utils/permission_util.dart b/lib/utils/permission_util.dart
index 64872d7..c9d13f4 100644
--- a/lib/utils/permission_util.dart
+++ b/lib/utils/permission_util.dart
@@ -1,5 +1,7 @@
 import 'dart:convert';
+import 'dart:io';
 
+import 'package:locations/utils/global.dart';
 import 'package:permission_handler/permission_handler.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
@@ -7,6 +9,19 @@
 
 class PermissionUtil {
   static var deniedSets = Set();
+
+  static Permission getLocationPermission() {
+    if (Platform.isAndroid) {
+      //鑾峰彇绯荤粺鐗堟湰
+      if (Global.androidSDK != null && Global.androidSDK! < 29) {
+        return Permission.locationAlways;
+      } else {
+        return Permission.location;
+      }
+    } else {
+      return Permission.locationAlways;
+    }
+  }
 
   static Future _loadDeniedPermissions() async {
     //鍔犺浇
@@ -16,7 +31,7 @@
     if (list != null) {
       deniedSets.addAll(list);
     }
-    
+
     print(jsonEncode(list));
   }
 
@@ -64,11 +79,11 @@
     PermissionStatus status = await permission.status;
     PermissionStatus? resultStatus;
     switch (status) {
-    //Android鎺堟潈
+      //Android鎺堟潈
       case PermissionStatus.granted:
         resultStatus = status;
         break;
-    //Android鎷掔粷
+      //Android鎷掔粷
       case PermissionStatus.denied:
         if (deniedSets.contains(permission.value.toString()) && !force) {
           resultStatus = PermissionStatus.denied;
@@ -76,7 +91,7 @@
           resultStatus = await permission.request();
         }
         break;
-    //Android绂佹鍚庝笉鍐嶆彁绀�
+      //Android绂佹鍚庝笉鍐嶆彁绀�
       case PermissionStatus.permanentlyDenied:
         if (deniedSets.contains(permission.value.toString()) && !force) {
           resultStatus = PermissionStatus.permanentlyDenied;
@@ -85,7 +100,7 @@
           resultStatus = await permission.status;
         }
         break;
-    //IOS
+      //IOS
       case PermissionStatus.limited:
         if (deniedSets.contains(permission.value.toString()) && !force) {
           resultStatus = PermissionStatus.limited;
@@ -93,7 +108,7 @@
           resultStatus = await permission.request();
         }
         break;
-    //IOS
+      //IOS
       case PermissionStatus.restricted:
         if (deniedSets.contains(permission.value.toString()) && !force) {
           resultStatus = PermissionStatus.restricted;
@@ -103,7 +118,7 @@
         break;
     }
 
-    if(permission==Permission.locationAlways){
+    if (permission == PermissionUtil.getLocationPermission()) {
       eventBus.fire(UserLocationPermissionEventBus(resultStatus));
     }
 

--
Gitblit v1.8.0