Geolocator插件获取当前位置

我正在使用Geolocator插件来获取设备的当前位置,并且使用Google 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软件包需要访问您位置的权限,但该软件包没有本机代码来请求该权限。

因此,您需要编写本机代码或仅安装另一个能够获得该许可权的软件包。

安装此程序: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;

}

以上是 Geolocator插件获取当前位置 的全部内容, 来源链接: utcz.com/qa/422475.html

回到顶部