misc.dart
4.33 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:permission_handler/permission_handler.dart';
import '../app.dart';
FutureOr<bool> checkPermissionStorage() async {
if (Platform.isIOS || Platform.isAndroid) {
var status = await Permission.storage.status;
if (!status.isGranted) {
status = await Permission.storage.request();
if (status.isGranted) {
return true;
}
} else {
return true;
}
return false;
} else if (Platform.isOhos) {
return true;
// var status = await Permission.photos.status;
// if (!status.isGranted) {
// status = await Permission.photos.request();
// if (status.isGranted) {
// return true;
// }
// } else {
// return true;
// }
// return false;
}
return false;
}
FutureOr<bool> checkContactPermission() async {
PermissionStatus permissionStatus = await Permission.contacts.status;
if (permissionStatus == PermissionStatus.granted) {
return true;
} else {
return false;
}
}
FutureOr<bool> checkPermission(Permission permissionGroup) async {
PermissionStatus permissionStatus = await permissionGroup.status;
if (permissionStatus == PermissionStatus.granted) {
return true;
} else {
return false;
}
}
FutureOr<bool> requestPermission(Permission permissionGroup) async {
//全局提示权限使用目的
if (Platform.isAndroid) {
//全局提示权限使用目的
BuildContext context = App.navigatorKey.currentState!.overlay!.context;
if (permissionGroup == Permission.storage) {
PermissionStatus permissionStatus = await Permission.storage.status;
if (permissionStatus != PermissionStatus.permanentlyDenied) {
DialogUtil.showAuthorityDestination(
context, 'h_storage', '存储权限使用说明', '用于读取相册照片上传店铺门头照,包间照片等。');
}
} else if (permissionGroup == Permission.camera) {
PermissionStatus permissionStatus = await Permission.camera.status;
if (permissionStatus != PermissionStatus.permanentlyDenied) {
DialogUtil.showAuthorityDestination(
context, 'h_camera', '相机权限使用说明', '用于上传店铺门头照,包间照片等。');
}
} else if (permissionGroup == Permission.location) {
PermissionStatus permissionStatus = await Permission.location.status;
if (permissionStatus != PermissionStatus.permanentlyDenied) {
DialogUtil.showAuthorityDestination(context, 'h_location', '位置权限使用说明',
'用于创建店铺时,获取店铺在地图上的位置,方便客户导航到咱们店铺');
}
}
}
final permissions = await [permissionGroup].request();
if (App.isShowDes) {
//全局提示权限使用目的
BuildContext context = App.navigatorKey.currentState!.overlay!.context;
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
}
if (await permissionGroup.request().isGranted) {
print(true);
// Either the permission was already granted before or the user just granted it.
}
if (permissions[permissionGroup] == PermissionStatus.granted) {
return true;
} else {
return false;
}
}
FutureOr<PermissionStatus> permissionStatus(Permission permissionGroup) async {
PermissionStatus permissionStatus = await permissionGroup.status;
return permissionStatus;
}
FutureOr<PermissionStatus> contactPermissionStatus() async {
PermissionStatus permissionStatus = await Permission.contacts.status;
return permissionStatus;
}
FutureOr<bool> requestContactPermission() async {
if (Platform.isAndroid) {
PermissionStatus permissionStatus = await Permission.contacts.status;
if (permissionStatus != PermissionStatus.permanentlyDenied) {
//全局提示权限使用目的
BuildContext context = App.navigatorKey.currentState!.overlay!.context;
DialogUtil.showAuthorityDestination(
context, 'h_contant', '通讯录权限使用说明', '直接从通讯录获得客户电话号码,快速录入预订信息。');
}
}
final permissions = await [Permission.contacts].request();
if (permissions[Permission.contacts] == PermissionStatus.granted) {
return true;
} else {
return false;
}
}
FutureOr<bool> openSetting() {
return openAppSettings();
}