在颤振中,我如何检查位置是否已启用?

Mic*_*411 4 flutter

当用户在没有启用位置的情况下进入谷歌地图页面时,我遇到了问题,地图不会更新,所以我想检查用户是否事先启用了位置,所以我需要功能,如果启用位置,则返回 true,否则返回 false。

DNS*_*DNS 11

对于像我这样提出这个 stackoverflow 问题的人来说,PermissionHandler包已经发生了更改和更新,旧的解决方案现在无效。

您可以检查定位服务是否启用:

if (await Permission.locationWhenInUse.serviceStatus.isEnabled) {
  // Use location.
}
Run Code Online (Sandbox Code Playgroud)


Moh*_*lim 9

使用权限处理插件

ServiceStatus serviceStatus = await PermissionHandler().checkServiceStatus(PermissionGroup.location);
bool enabled = (serviceStatus == ServiceStatus.enabled);
Run Code Online (Sandbox Code Playgroud)

您还可以显示请求许可的理由(仅限 Android)

bool isShown = await PermissionHandler().shouldShowRequestPermissionRationale(PermissionGroup.location);
Run Code Online (Sandbox Code Playgroud)

位置插件

var location = Location();
bool enabled = await location.serviceEnabled();
Run Code Online (Sandbox Code Playgroud)

并请求通过

bool gotEnabled = await location.requestService();
Run Code Online (Sandbox Code Playgroud)


ilB*_*rra 3

您可以安装权限处理程序插件然后使用它:

final PermissionStatus permission = await PermissionHandler()
                .checkPermissionStatus(PermissionGroup.location);
Run Code Online (Sandbox Code Playgroud)