获取服务后跳转页面
class WriteNotifyDeviceUtils {
static void writeNotifyDeviceUtils(
GlobalWiFiBluetooth globalWiFiBluetooth, BluetoothDevice device,
{Function? callback, Function? getThen}) async {
SharedPreferences preferences = await SharedPreferences.getInstance();
if (device != globalWiFiBluetooth.device) {
globalWiFiBluetooth.blueDeviceVoid(device);
}
if (globalWiFiBluetooth.modelId != "" && globalWiFiBluetooth.productType.value != "") {
List<BluetoothService> services = [];
try {
if (globalWiFiBluetooth.device!.isDisconnected) {
await globalWiFiBluetooth.device!
.connect(timeout: const Duration(milliseconds: 2500));
}
services = await globalWiFiBluetooth.device!.discoverServices();
} catch (e) {
}
if (services.isEmpty) {
if (globalWiFiBluetooth.device!.isConnected) {
await globalWiFiBluetooth.device!.disconnect();
}
return;
}
await preferences.remove('list');
BluetoothCharacteristic? characteristicWrite;
BluetoothCharacteristic? characteristicNotify;
for (var element in services) {
if (element.uuid.toString() == "asdfghjkl") {
for (BluetoothCharacteristic characteristic
in element.characteristics) {
if (characteristic.properties.write) {
characteristicWrite = characteristic;
globalWiFiBluetooth.characteristicWriteVoid(characteristicWrite);
}
if (characteristic.properties.notify) {
characteristicNotify = characteristic;
globalWiFiBluetooth
.characteristicNotifyVoid(characteristicNotify);
if (characteristic.properties.notify ||
characteristic.properties.indicate) {
try {
characteristic.setNotifyValue(true);
} catch (e) {
}
}
}
if (characteristicWrite != null && characteristicNotify != null) {
EasyLoading.dismiss();
globalWiFiBluetooth.isHaveDeviceVoid(false);
globalWiFiBluetooth.deviceBottomIndexVoid(0);
globalWiFiBluetooth.isDevicePageVoid(true);
if (globalWiFiBluetooth.productType.value != "2" &&
globalWiFiBluetooth.productType.value != "") {
Get.to(() => const DeviceMain())?.then((value) => {
globalWiFiBluetooth.isDevicePageVoid(false),
if (getThen != null) {getThen()}
});
return;
}
if (globalWiFiBluetooth.productType.value == "2") {
Get.to(() => const DeviceScreen())?.then((value) => {
globalWiFiBluetooth.isDevicePageVoid(false),
if (getThen != null) {getThen()}
});
return;
}
}
}
}
}
} else {
if (callback != null) {
callback();
}
}
}
获取服务
static void writeNotifyUtils(
GlobalWiFiBluetooth globalWiFiBluetooth,
BluetoothDevice device, {
Function? callback,
Function? onceCallback,
}) async {
globalWiFiBluetooth.blueDeviceVoid(device);
List<BluetoothService> services = [];
SharedPreferences preferences = await SharedPreferences.getInstance();
try {
if (globalWiFiBluetooth.device!.isDisconnected) {
await globalWiFiBluetooth.device!
.connect(timeout: const Duration(milliseconds: 2500));
}
services = await globalWiFiBluetooth.device!.discoverServices();
} catch (e) {
}
if (services.isEmpty) {
if (globalWiFiBluetooth.device!.isConnected) {
await globalWiFiBluetooth.device!.disconnect();
}
return;
}
await preferences.remove('list');
for (var element in services) {
if (element.uuid.toString() == "ca9e") {
for (BluetoothCharacteristic characteristic
in element.characteristics) {
if (characteristic.properties.write) {
globalWiFiBluetooth.characteristicWriteVoid(characteristic);
}
if (characteristic.properties.notify) {
globalWiFiBluetooth.characteristicNotifyVoid(characteristic);
if (characteristic.properties.notify ||
characteristic.properties.indicate) {
try {
characteristic.setNotifyValue(true);
} catch (e) {
EasyLoading.showToast("");
}
}
}
if (globalWiFiBluetooth.characteristicWrite != null &&
globalWiFiBluetooth.characteristicNotify != null) {
EasyLoading.dismiss();
if (callback != null) {
callback();
}
}
}
}
}
}
}