我正在使用Flutter应用程序,使用名为flutter_blue的Dart包连接到蓝牙设备。蓝牙设备连接成功,但前提是用户在其设备上启用了蓝牙和位置。我正在尝试找到一种方法,在尝试连接之前检测设备上是否启用了位置和蓝牙,以便我可以提示用户打开它们。目前,我还在使用一个Dart包,它可以与原生Android意图一起使用,以调出每个意图的设置菜单(也可以工作)。我只需要一种方法来检查它们是否被启用,这样我就知道是否为用户显示设置菜单来启用它们。
发布于 2021-04-20 02:35:37
我希望这仍然是有用的
您可以使用以下命令检查是否启用了蓝牙:
Future<bool> _checkDeviceBluetoothIsOn() async {
return await flutterBlue.isOn;
}并检查是否使用PermissionHandler包启用了位置,其中包含:
Future<bool> _checkDeviceLocationIsOn() async {
return await Permission.locationWhenInUse.serviceStatus.isEnabled;
}发布于 2020-10-11 03:36:11
实际上,我正在处理与您相同的案例,我检查它的方法是使用以下代码:
为了检查蓝牙激活,你可以监听flutter blue库提供的状态流,你可以像下面这样访问它:
FlutterBlue.instance.state 对于定位,我没有找到一种“本地颤动方式”,所以我使用了geolocator包,它可以让你检查定位是否处于活动状态。
它为您提供了一个解决布尔值的未来,该布尔值表示活动时为true,禁用时为false。
Geolocator().isLocationServiceEnabled()https://stackoverflow.com/questions/61257531
复制相似问题