Browse Source

1、新增动态添加蓝牙权限

guanxinyi 1 year ago
parent
commit
033ba17b91

+ 4 - 0
lib/managers/interfaces/permission.dart

@@ -1,4 +1,8 @@
 abstract class IPermissionManager {
   ///检查精准定位
   Future<void> requestLocationPermission();
+
+  Future<void> requestBluetoothConnectPermission();
+  Future<void> requestBluetoothScanPermission();
+  Future<void> requestBluetoothAdvertisePermission();
 }

+ 8 - 1
lib/pages/check/widgets/exam_configurable/exam_blood_sugar.dart

@@ -27,10 +27,17 @@ class _ExamBloodSugarState extends State<ExamBloodSugar> {
   var permissionManager = Get.find<IPermissionManager>();
   @override
   void initState() {
-    permissionManager.requestLocationPermission();
+    getPermission();
     super.initState();
   }
 
+  Future<void> getPermission() async {
+    await permissionManager.requestLocationPermission();
+    await permissionManager.requestBluetoothConnectPermission();
+    await permissionManager.requestBluetoothAdvertisePermission();
+    await permissionManager.requestBluetoothScanPermission();
+  }
+
   @override
   Widget build(BuildContext context) {
     return ExamCard(

+ 15 - 0
lib/pages/check/widgets/exam_configurable/exam_body_temperature.dart

@@ -3,6 +3,7 @@ import 'package:get/get.dart';
 import 'package:vnote_device_plugin/devices/temp.dart';
 import 'package:vnoteapp/components/alert_dialog.dart';
 import 'package:vnoteapp/components/button.dart';
+import 'package:vnoteapp/managers/interfaces/permission.dart';
 import 'package:vnoteapp/pages/check/models/form.dart';
 import 'package:vnoteapp/pages/check/widgets/exam_configurable/exam_card.dart';
 
@@ -24,6 +25,20 @@ class ExamBodyTemperature extends StatefulWidget {
 }
 
 class _ExamBodyTemperatureState extends State<ExamBodyTemperature> {
+  var permissionManager = Get.find<IPermissionManager>();
+  @override
+  void initState() {
+    getPermission();
+    super.initState();
+  }
+
+  Future<void> getPermission() async {
+    await permissionManager.requestLocationPermission();
+    await permissionManager.requestBluetoothConnectPermission();
+    await permissionManager.requestBluetoothAdvertisePermission();
+    await permissionManager.requestBluetoothScanPermission();
+  }
+
   @override
   Widget build(BuildContext context) {
     return ExamCard(

+ 9 - 1
lib/pages/check/widgets/exam_configurable/exam_body_weight.dart

@@ -26,10 +26,17 @@ class _ExamBodyWeightState extends State<ExamBodyWeight> {
   var permissionManager = Get.find<IPermissionManager>();
   @override
   void initState() {
-    permissionManager.requestLocationPermission();
+    getPermission();
     super.initState();
   }
 
+  Future<void> getPermission() async {
+    await permissionManager.requestLocationPermission();
+    await permissionManager.requestBluetoothConnectPermission();
+    await permissionManager.requestBluetoothAdvertisePermission();
+    await permissionManager.requestBluetoothScanPermission();
+  }
+
   @override
   Widget build(BuildContext context) {
     return ExamCard(
@@ -116,6 +123,7 @@ class _WeightState extends State<Weight> {
   bool connectFailState = false;
   bool connectSuccessState = false;
   bool isConnect = false;
+
   @override
   void initState() {
     connect();