witsystem_device_plugin 0.4.8 copy "witsystem_device_plugin: ^0.4.8" to clipboard
witsystem_device_plugin: ^0.4.8 copied to clipboard

接入witsystem移动端SDK.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:witsystem_device_plugin/device/Ota.dart';
import 'package:witsystem_device_plugin/device/Unlock.dart';
import 'package:witsystem_device_plugin/device/BleDevice.dart';
import 'package:witsystem_device_plugin/device/AddDevice.dart';
import 'package:witsystem_device_plugin/device/DeviceManage.dart';
import 'package:witsystem_device_plugin/command/PasswordType.dart';
import 'package:witsystem_device_plugin/command/MarkType.dart';
import 'package:witsystem_device_plugin/command/CardType.dart';
import 'package:witsystem_device_plugin/witsystem_device_plugin.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    init();
  }

  init() async {
    var millisecondsSinceEpoch = DateTime.now().millisecondsSinceEpoch;
    var initSDK = await WitsystemDevicePlugin.instance.initSDK(
        "smartf9f18d5fb2764825b74f81cac658b195",
        "open6815e73b76e24f5481db36cddcc80a7d1610376044955",
        "8aa03f987f6448bf931aa5284a79b26c",
        "-----BEGIN PRIVATE KEY-----MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCQeyDGDOhzQbTpkcQ1hnuILAUadO7WgHjDSZSxwb3lTuyKe5OB2+nzkW1QV72Szg777JShj787j/zaKsyt7LExJCU50FQ8Dz6FL0rVgL60PZqAm+qiP56/5mH+zFfLfy4DC/PSZoSTsXbWB8HJJW2hLJlCx+CBQ4pRKBZMJBwBSp7GSBcrWpRB8Nus+S+koN6erA94faCtpUKSaH3TNkeQvoXfSapvNt+lEQzMd7UdTPoHAji8GAScYPBq+QFATDCdtrmjvz8bTIDbu3Nr/CzJ625DQt8QirP0dA45bBd6vidG/P7qknIr+mlBvIEqNpVmzkMPfT6zsb7Cn+vvZKrTAgMBAAECggEAc2noRE0LYwaZ/frzQc6r35tKeFfwcmkuDtI4dcbOat8hFX6h1ppVyLvjFssAJMV2MshJ8sVhfbMHyT9nQYhSA29cTVKd91w2FS4yGVs++7w6L4JdbD5mEeV3YpLZjzWJC+YAX5KFVXXt+As6QfQkHxwBUddY/+l0FGBxb2Fo/Z3q0uHxA9zPQ/9DW610MHs/i/KH6BZDBEvIXEePUVoBX7Or+kZ/xk2421anaiAfq/JSBZFiCa62AVfIossOaebywTz9nICez81uiJuEL0mYABw/jrDIdCM4ZeIHS8gm3mZxrIcup6C564o8z12nHCsBaKbZZMOOVJ1KTyAFI1I0AQKBgQDGBVQyPkSOlO42eN183NcLdMhjAXVjpaX+eE+WfyNBm7+DgW3fzdmlS23SlfRqSFjYP69KQNu/p5EeSyn1NGgg2xeW2F0FOEM/cXCbgEUOz3baQcmuM0wtU7FaaBG37J+J3/2SRgCpZYcl72UTF3N3TSqePcU6B2EtfuRAdVzZrQKBgQC6yLbZKWtdxQl+k/KfiyfKXZh3ceCYSQUmfOoPQ+lO6DfpGvOa/3+oT4wOFP1MVm4yF5TFqhjoFer/17tnK91ZbAL5rBi0LF1zEVzutsII9nHDXY9MOVp5cG+MKTgDW1rv7jsRB7O7kip1lS9q+VLvD2199KDsJOdDHujzILkmfwKBgDC3QOZ3cTBOrWgTRhIg1nrICUBqLHIOX48CFDpnHspWQcBdiCVmJCRJMUR8hbvb/pd822f+GtHErKvyO+lKMk/a9quyoPfWxpyGEPkAjny9R3UceDx1/EiubVRbg/hmqz0lMOHafPEvvBb2FTykKVDxWAnEEpBbHmot7IN7HBOlAoGAO7v69gJQCuH7wlZQToOzSv2ZyAFMQYeAtSlXtWATmh+b2dm7tIMncU1XTh2aUDKH9U8jTf+zDW4NBJsanMkjdficDvrhv6U8kZMo9FLQRQuDoGYocMkazSGPGvUHq9MohvjaPP0IluEM4SO/0WdBBaEadCCq4jp/FzEocLCzZcMCgYBOLGrgg+hnYZuA/9StPC4xWbKprfDElFiXclQXRjDK5jVovxkgx9IWODn3H+FWOX39uS0EMUlo6gQrGb+OrsLjwbabUu1Gb6lk4/H2j1NqdKQ4nHPkbIclm8la8peTnCecdn55q7VhwozhN8QJ0JgcOPHBoudhCIQvG4Xm/wbzFA==-----END PRIVATE KEY-----");
    var millisecondsSinceEpoch2 = DateTime.now().millisecondsSinceEpoch;
    print("初始化返回的<><><><><><><><><><><><>数据$initSDK ");
    print(
        "初始化返回的<><><><><><><><><><><><>数据${millisecondsSinceEpoch2 - millisecondsSinceEpoch} ");
    print("设备列表${DeviceManage.instance.deviceList()} ");
    print("设备列表${DeviceManage.instance.device("Slock383B26345B6A")} ");
  }

  late StreamSubscription listen;

  bleUnlocks() async {
    var microsecondsSinceEpoch = DateTime.now().millisecondsSinceEpoch;

    // Unlock.instance.bleUnlocks(success: (map) {
    //   print("开门成功$map");
    // }, foundMultipleDevices: (map) {
    //   print("发现附近有多个设备$map");
    // }, fail: (e) {
    //   print("开启设备失败$e");
    // });
    //await DeviceManage().getDeviceSoftwareFunction("Slock383B26345B6A");
    try {
      var info = await Unlock.instance.bleUnlock("Slock383B26345B6A");
      print("开门成功$info");
    } catch (e) {
      print("错误$e");
    }

    var microsecondsSinceEpoch2 = DateTime.now().millisecondsSinceEpoch;
    print("开锁耗时${microsecondsSinceEpoch2 - microsecondsSinceEpoch}");
  }

  //扫描
  scan() {
    listen = AddDevice.instance.scanAddBleDevice().listen((event) {
      print("扫描返回的信息$event");
    });
    listen.onError((err) {
      var err2 = err as PlatformException;
      print("异常信息${err2}");
      listen.cancel();
    });
  }

  stopScan() {
    AddDevice.instance.stopAddBleDevice(listen);
  }

  addPwd() async {
    try {
      var addPassword = await BleDevice.instance.addPassword(
          "Slock383B26345B6A",
          PasswordType.ADMIN_PASSWORD,
          "654321",
          "flutter添加密码");
      print("添加成功$addPassword");
    } catch (e) {
      print("错误信息${e as PlatformException}");
    }
  }

  addCard() async {
    try {
      var addPassword = await BleDevice.instance
          .addCard("Slock383B26345B6A", CardType.ADMIN_CARD, "flutter添加卡",
              swingCard: () {
        print("请刷卡");
      });
      print("添加成功$addPassword");
    } catch (e) {
      print("错误信息${e as PlatformException}");
    }
  }

  addMark() async {
    await BleDevice.instance
        .addMark("Slock383B26345B6A", MarkType.ADMIN_MARK, "flutter添加指纹",
            progress: (info) {
          print("添加指纹进度$info>>>>>>>>>>>>>>>>>>>>>>首页");
        }, sendSuccess: () {
          print("发送成功>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>首页");
        })
        .then((value) => print("添加成功"))
        .onError((error, stackTrace) {
          print("添加失败$error");
        });
    // BleDevice.instance.addMark("Slock383B26345B6A", MarkType.ADMIN_MARK, "flutter添加指纹").listen((event) {
    //   print("添加指纹返回$event");
    //
    // }).onError((err){
    //   print("添加指纹错误信息${err as PlatformException}");
    // });
  }

  closeBleDevice() {
    BleDevice.instance.closeBleDevice("Slock383B26345B6A");
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: ListView(
          children: [
            Center(
              child: MaterialButton(
                textColor: Colors.red,
                child: const Text("开锁"),
                onPressed: bleUnlocks,
              ),
            ),
            MaterialButton(
              onPressed: scan,
              child: const Text("扫描可以添加的设备"),
            ),
            MaterialButton(
              onPressed: stopScan,
              child: const Text("停止扫描附近设备"),
            ),
            MaterialButton(
              onPressed: addPwd,
              child: const Text("添加密码123456"),
            ),
            MaterialButton(
              onPressed: () async {
                await Ota().checkUpVersion("Slock383B26345B6A");
                Ota().startBleOta(
                    deviceId: "Slock383B26345B6A",
                    progress: (v) {
                      print("升级进度$v");
                    });
              },
              child: const Text("ota升级"),
            ),
            MaterialButton(
              onPressed: () {
                Ota().stopBleOta("Slock383B26345B6A");
              },
              child: const Text("ota停止升级"),
            ),
            MaterialButton(
              onPressed: addCard,
              child: const Text("添加卡"),
            ),
            MaterialButton(
              onPressed: addMark,
              child: const Text("添加指纹"),
            ),
            MaterialButton(
              onPressed: closeBleDevice,
              child: const Text("断开设备蓝牙操作"),
            ),
            MaterialButton(
              onPressed: () async {
                try {
                  // var dd = await BleDevice()
                  //     .connectAndOpen("Slock383B26345B6A", true);
                  // var deviceSoftwareFunction = await DeviceManage.instance
                  //     .getDeviceSoftwareFunction("Slock04EE033EABF4");
                  // print("返回的数据$deviceSoftwareFunction");
                  print(
                      ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
                  var dd = await BleDevice.instance.connectAndOpen(
                      "Slock383B26345B6A", true,
                      isVibrate: true);
                  //var deviceSoftwareFunction = await DeviceManage.instance.getDeviceSoftwareFunction("Slock04EE033EABF4");
                  print("返回的数据$dd");
                  //DeviceManage.instance.getDeviceSoftwareFunction("Slock383B26345AFB");
                } catch (e) {
                  print("收到的错误信息$e");
                }
              },
              child: const Text("连接认证"),
            ),
            MaterialButton(
              onPressed: () async {
                DeviceManage().refurbishAllDevice();
              },
              child: const Text("刷新设备"),
            ),
            MaterialButton(
              onPressed: () async {
                DeviceManage().addDeviceChangeObserver(
                  (data) {
                    debugPrint("设备变化$data");
                  },
                ).onError((err) {});
              },
              child: const Text("监听设备变化"),
            ),
            MaterialButton(
              onPressed: () async {
                DeviceManage().removeDeviceChangeObserver();
              },
              child: const Text("关闭监听设备变化"),
            ),
            MaterialButton(
              onPressed: () async {
                BleDevice().bleDeviceConnectState(
                  (data) {
                    debugPrint("flutter监听到蓝牙连接变化$data");
                  },
                ).onError((err) {});
              },
              child: const Text("监听蓝牙连接变化"),
            ),
            MaterialButton(
              onPressed: () async {
                BleDevice().cancelBleDeviceConnectState();
              },
              child: const Text("关闭监听蓝牙连接变化"),
            ),
            MaterialButton(
              onPressed: () async {
                try {
                  var info = await DeviceManage()
                      .bindRelay("Slock383B26345B6A", "Slock383B26345B6A");
                  print("绑定成功$info");
                } catch (e) {
                  print("绑定失败$e");
                }
              },
              child: const Text("绑定网关"),
            ),
            MaterialButton(
              onPressed: () async {
                var initSDK = await WitsystemDevicePlugin.instance.initSDK(
                    "smartf9f18d5fb2764825b74f81cac658b195",
                    "open6815e73b76e24f5481db36cddcc80a7d1610376044955",
                    "8aa03f987f6448bf931aa5284a79b26c",
                    "-----BEGIN PRIVATE KEY-----MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCQeyDGDOhzQbTpkcQ1hnuILAUadO7WgHjDSZSxwb3lTuyKe5OB2+nzkW1QV72Szg777JShj787j/zaKsyt7LExJCU50FQ8Dz6FL0rVgL60PZqAm+qiP56/5mH+zFfLfy4DC/PSZoSTsXbWB8HJJW2hLJlCx+CBQ4pRKBZMJBwBSp7GSBcrWpRB8Nus+S+koN6erA94faCtpUKSaH3TNkeQvoXfSapvNt+lEQzMd7UdTPoHAji8GAScYPBq+QFATDCdtrmjvz8bTIDbu3Nr/CzJ625DQt8QirP0dA45bBd6vidG/P7qknIr+mlBvIEqNpVmzkMPfT6zsb7Cn+vvZKrTAgMBAAECggEAc2noRE0LYwaZ/frzQc6r35tKeFfwcmkuDtI4dcbOat8hFX6h1ppVyLvjFssAJMV2MshJ8sVhfbMHyT9nQYhSA29cTVKd91w2FS4yGVs++7w6L4JdbD5mEeV3YpLZjzWJC+YAX5KFVXXt+As6QfQkHxwBUddY/+l0FGBxb2Fo/Z3q0uHxA9zPQ/9DW610MHs/i/KH6BZDBEvIXEePUVoBX7Or+kZ/xk2421anaiAfq/JSBZFiCa62AVfIossOaebywTz9nICez81uiJuEL0mYABw/jrDIdCM4ZeIHS8gm3mZxrIcup6C564o8z12nHCsBaKbZZMOOVJ1KTyAFI1I0AQKBgQDGBVQyPkSOlO42eN183NcLdMhjAXVjpaX+eE+WfyNBm7+DgW3fzdmlS23SlfRqSFjYP69KQNu/p5EeSyn1NGgg2xeW2F0FOEM/cXCbgEUOz3baQcmuM0wtU7FaaBG37J+J3/2SRgCpZYcl72UTF3N3TSqePcU6B2EtfuRAdVzZrQKBgQC6yLbZKWtdxQl+k/KfiyfKXZh3ceCYSQUmfOoPQ+lO6DfpGvOa/3+oT4wOFP1MVm4yF5TFqhjoFer/17tnK91ZbAL5rBi0LF1zEVzutsII9nHDXY9MOVp5cG+MKTgDW1rv7jsRB7O7kip1lS9q+VLvD2199KDsJOdDHujzILkmfwKBgDC3QOZ3cTBOrWgTRhIg1nrICUBqLHIOX48CFDpnHspWQcBdiCVmJCRJMUR8hbvb/pd822f+GtHErKvyO+lKMk/a9quyoPfWxpyGEPkAjny9R3UceDx1/EiubVRbg/hmqz0lMOHafPEvvBb2FTykKVDxWAnEEpBbHmot7IN7HBOlAoGAO7v69gJQCuH7wlZQToOzSv2ZyAFMQYeAtSlXtWATmh+b2dm7tIMncU1XTh2aUDKH9U8jTf+zDW4NBJsanMkjdficDvrhv6U8kZMo9FLQRQuDoGYocMkazSGPGvUHq9MohvjaPP0IluEM4SO/0WdBBaEadCCq4jp/FzEocLCzZcMCgYBOLGrgg+hnYZuA/9StPC4xWbKprfDElFiXclQXRjDK5jVovxkgx9IWODn3H+FWOX39uS0EMUlo6gQrGb+OrsLjwbabUu1Gb6lk4/H2j1NqdKQ4nHPkbIclm8la8peTnCecdn55q7VhwozhN8QJ0JgcOPHBoudhCIQvG4Xm/wbzFA==-----END PRIVATE KEY-----");

                var device =
                    await DeviceManage.instance.device("Slock383B26345B6A");
                print("初始化返回的<><><><><><><><><><><><>数据$device ");
              },
              child: const Text("初始化"),
            ),
            MaterialButton(
              onPressed: () async {
                await WitsystemDevicePlugin.instance.uninitDevices();
                print("取消初始化<><><><><><><><><><><><>数据 ");
              },
              child: const Text("取消初始化"),
            ),
            MaterialButton(
              onPressed: () async {
                await Unlock.instance.scanUnlock((rssi, deviceId) {
                  print("扫描返回的信息>>>>>>>>>>>>>>${rssi.toString()} :: ${deviceId}");
                });
              },
              child: const Text("扫描附近可以开启的设备"),
            ),
            MaterialButton(
              onPressed: () async {
                await Unlock.instance.stopScanUnlock();
              },
              child: const Text("停止扫描附近可以开启的设备"),
            ),
          ],
        ),
      ),
    );
  }
}
0
likes
115
points
4
downloads

Publisher

unverified uploader

Weekly Downloads

接入witsystem移动端SDK.

Documentation

API reference

License

unknown (license)

Dependencies

flutter

More

Packages that depend on witsystem_device_plugin

Packages that implement witsystem_device_plugin