如何在Flutter中显示基于位置服务启用与否的小部件?



在我的应用程序中,我必须显示两个不同的小部件基于位置服务打开或关闭

所以在我的应用程序中,我必须显示数据小部件如果位置在

,如果的位置是关闭的,那么显示位置关闭widget.

这里我必须使屏幕自动显示数据小部件,如果位置服务是在上如果关闭了设备的位置服务,那么它会自动显示widget的位置怎么做呢?

示例如下:

Widget build(BuildContext context) {
return MaterialApp(
title: 'Bluetooth Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: StreamBuilder<BluetoothState>(
stream: FlutterBlue.instance.state,
initialData: BluetoothState.unknown,
builder: (c, snapshot) {
final state = snapshot.data;
if (state == BluetoothState.on) {
return FindDevicesScreen();
}
return BluetoothOffScreen(state: state);
}),
);
}

如上面的代码,如果蓝牙是关闭的,那么它显示BluetoothOffScreen(),如果蓝牙是打开的,那么它显示FindDevicesScreen(),所以这里我必须这样做与位置是打开或关闭。

请帮帮我,谢谢你。

您可以使用Permission处理程序包来检查位置服务是否启用

ServiceStatus serviceStatus = await PermissionHandler().checkServiceStatus(PermissionGroup.location);
bool enabled = (serviceStatus == ServiceStatus.enabled);

,然后根据启用的bool值,您可以显示或隐藏您想要的小部件

最新更新