修复安卓11定位无法正常获取的问题

master
zhangmeng 4 years ago
parent 98e69c4960
commit 6dcd935d7f

@ -10,15 +10,24 @@
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--访问网络-->
<permission android:name="android.permission.INTERNET"/>
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--用于访问wifi网络信息wifi信息会用于进行网络定位-->
<permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--用于读取手机当前的状态-->
<permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--用于写入缓存数据到扩展存储卡-->
<permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--精确定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!--用于获取wifi的获取权限wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<!-- tools:replace="android:name"-->
<!-- android:theme="@style/LaunchTheme" -->
@ -30,7 +39,8 @@
android:requestLegacyExternalStorage="true"
>
<meta-data android:name="com.amap.api.v2.apikey" android:value="7225bca14fe7493f9f469315a933f99c"/>
<!-- 配置定位Service -->
<service android:name="com.amap.api.location.APSService"/>
<activity
android:name=".MainActivity"
android:launchMode="singleTop"

@ -1421,13 +1421,13 @@ class _HomePageState extends BaseStoreState<HomePage>
}
Future<bool> requestPermission() async {
final permissions = await PermissionHandler()
.requestPermissions([PermissionGroup.location]);
if (permissions[PermissionGroup.location] == PermissionStatus.granted) {
return true;
} else {
return false;
bool permission = await Permission.locationWhenInUse.isGranted;
if (!permission) {
Permission.locationWhenInUse
.request()
.then((value) => permission = value.isGranted);
}
return permission;
}
//

@ -85,20 +85,14 @@ class ImageUtils {
}) async {
//
if (Platform.isAndroid) {
PermissionStatus permissionStorage = await PermissionHandler()
.checkPermissionStatus(PermissionGroup.storage);
if (permissionStorage != PermissionStatus.granted) {
Map<PermissionGroup, PermissionStatus> permissionStatus =
await PermissionHandler()
.requestPermissions([PermissionGroup.storage]);
permissionStorage = permissionStatus[PermissionGroup.storage] ??
PermissionStatus.unknown;
if (permissionStorage != PermissionStatus.granted) {
print("❌----------has no Permission");
return false;
}
bool permissionStorage = await Permission.storage.isGranted;
if (!permissionStorage) {
print("❌----------has no Permission");
Permission.storage
.request()
.then((value) => permissionStorage = value.isGranted);
}
return permissionStorage;
}
//
@ -106,7 +100,8 @@ class ImageUtils {
String url = urls[i];
var data = await getNetworkImageData(url, useCache: useCache);
try {
final Map<dynamic,dynamic> result = await ImageGallerySaver.saveImage(data);
final Map<dynamic, dynamic> result =
await ImageGallerySaver.saveImage(data);
if (Platform.isAndroid) {
if (result.containsValue(true)) {
callBack(i);
@ -144,20 +139,14 @@ class ImageUtils {
void Function(bool success) endBack) async {
//
if (Platform.isAndroid) {
PermissionStatus permissionStorage = await PermissionHandler()
.checkPermissionStatus(PermissionGroup.storage);
if (permissionStorage != PermissionStatus.granted) {
Map<PermissionGroup, PermissionStatus> permissionStatus =
await PermissionHandler()
.requestPermissions([PermissionGroup.storage]);
permissionStorage = permissionStatus[PermissionGroup.storage] ??
PermissionStatus.unknown;
if (permissionStorage != PermissionStatus.granted) {
print("❌----------has no Permission");
return false;
}
bool permissionStorage = await Permission.storage.isGranted;
if (!permissionStorage) {
print("❌----------has no Permission");
Permission.storage
.request()
.then((value) => permissionStorage = value.isGranted);
}
return permissionStorage;
}
//
for (var i = 0; i < fileDatas.length; i++) {

@ -5,34 +5,27 @@ import 'package:permission_handler/permission_handler.dart';
class PermissionTool {
static Future<bool> haveCameraPermission() async {
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler().requestPermissions([PermissionGroup.camera]);
if (permissions[PermissionGroup.camera] == PermissionStatus.granted) {
return true;
} else {
return false;
bool permission = await Permission.camera.isGranted;
if (!permission) {
Permission.camera.request().then((value) => permission = value.isGranted);
}
return permission;
}
static Future<bool> havePhotoPermission() async {
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler().requestPermissions([PermissionGroup.photos]);
if (permissions[PermissionGroup.photos] == PermissionStatus.granted) {
return true;
} else {
return false;
bool permission = await Permission.photos.isGranted;
if (!permission) {
Permission.photos.request().then((value) => permission = value.isGranted);
}
return permission;
}
static Future<bool> haveAudioPermission() async {
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler()
.requestPermissions([PermissionGroup.microphone]);
if (permissions[PermissionGroup.microphone] == PermissionStatus.granted) {
return true;
} else {
return false;
bool permission = await Permission.microphone.isGranted;
if (!permission) {
Permission.microphone.request().then((value) => permission = value.isGranted);
}
return permission;
}
static showOpenPermissionDialog(BuildContext context, String message,
@ -50,7 +43,7 @@ class PermissionTool {
if (open != null) {
open();
} else {
bool isOpened = await PermissionHandler().openAppSettings();
bool isOpened = await openAppSettings();
}
},
),

@ -985,7 +985,14 @@ packages:
name: permission_handler
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.3.0"
version: "8.0.1"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.5.1"
petitparser:
dependency: transitive
description:

@ -67,7 +67,7 @@ dependencies:
chewie: ^1.0.0
# 权限组件
permission_handler: 3.3.0
permission_handler: ^8.0.1
#邀请码相关第三方安装
openinstall_flutter_plugin: ^1.0.1

Loading…
Cancel
Save