gpt4 book ai didi

google-maps - 用于获取当前位置的地理定位器插件

转载 作者:IT王子 更新时间:2023-10-29 06:57:31 25 4
gpt4 key购买 nike

我正在使用 Geolocator 插件获取设备的当前位置,并使用 google map 插件将 map 小部件集成到 flutter 中

谷歌地图工作正常,但 Geolocator 给我这个错误:

D/permissions_handler(10148): No permissions found in manifest for: $permission
D/permissions_handler(10148): No permissions found in manifest for: $permission

错误仍然出现,知道为什么会这样吗?

并且在文件Androidmanifest.xml中我添加了这些权限

<manifest>:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

最佳答案

问题是 google_maps_flutter 包需要访问您的位置的权限,但该包没有本地代码来请求该权限。

因此您需要编写 native 代码或只安装另一个能够获得该权限的包。

安装这个:https://pub.dartlang.org/packages/location

然后:

getLocationPermission() async {
final Location location = new Location();
try {
location.requestPermission(); //to lunch location permission popup
} on PlatformException catch (e) {
if (e.code == 'PERMISSION_DENIED') {
print('Permission denied');
}
}
}

或者如果你想要更可靠的代码,这是我的一些项目的代码(带有位置包):

//Show some loading indicator depends on this boolean variable
bool askingPermission = false;

@override
void initState() {
this.getLocationPermission();
super.initState();
}

Future<bool> getLocationPermission() async {
setState(() {
this.askingPermission = true;
});
bool result;
final Location location = Location();
try {
if (await location.hasPermission())
result = true;
else {
result = await location.requestPermission();
}
print('getLocationPermission: '
'${result ? 'Access Allowed' : 'Access Denied'}');
} catch (log, trace) {
result = false;
print('getLocationPermission/log: $log');
print('getLocationPermission/trace: $trace');
} finally {
setState(() {
this.askingPermission = false;
});
}
return result;
}

关于google-maps - 用于获取当前位置的地理定位器插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55628060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com