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