4 Star 0 Fork 0

龙呤枫/YCSDKResource

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
device_control.dart 22.39 KB
一键复制 编辑 原始数据 按行查看 历史
kuangdeyin 提交于 28天前 . 增加flutter sdk demo
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:yc_product_plugin/yc_product_plugin.dart';
import 'dart:io';
class DeviceControlWidget extends StatefulWidget {
const DeviceControlWidget({super.key});
@override
State<DeviceControlWidget> createState() => _DeviceControlWidgetState();
}
class _DeviceControlWidgetState extends State<DeviceControlWidget> {
String _displayedText = "";
final _items = [
"App photo on",
"App photo off",
"Start run",
"Stop run",
"Start measure heart rate",
"Stop measure heart rate",
"Start measure blood pressure",
"Stop measure blood pressure",
"Start measure blood oxygen",
"Stop measure blood oxygen",
"Start measure temperature",
"Stop measure temperature",
"Start measure pressure",
"Stop measure pressure",
"Start measure blood glucose",
"Stop measure blood glucose",
"Start measure hrv",
"Stop measure hrv",
// "Start measure vo2max",
// "Stop measure vo2max"
];
@override
void initState() {
super.initState();
YcProductPlugin().onListening((event) {
debugPrint("--${toString()} -- ${event.toString()}");
if (event.keys
.contains(NativeEventType.deviceControlFindPhoneStateChange)) {
final int index =
event[NativeEventType.deviceControlFindPhoneStateChange];
final state = DeviceControlState.values[index];
setState(() {
_displayedText = "Find phone ${state.toString()}";
});
}
if (event.keys.contains(NativeEventType.deviceControlPhotoStateChange)) {
final int index = event[NativeEventType.deviceControlPhotoStateChange];
final state = DeviceControlPhotoState.values[index];
setState(() {
_displayedText = "Device photo ${state.toString()}";
});
}
// 一键测量状态
final Map? measureStateInfo =
event[NativeEventType.deviceHealthDataMeasureStateChange];
if (measureStateInfo != null) {
debugPrint(
"measureStateInfo, ${measureStateInfo.runtimeType.toString()} ,key=>${measureStateInfo.toString()},event=>${event.toString()}");
setState(() {
_displayedText = "MeasureState ${measureStateInfo.toString()}";
});
}
// 心率
final int? hrValue = event[NativeEventType.deviceRealHeartRate];
if (hrValue != null) {
setState(() {
_displayedText = "HeartRate $hrValue";
});
}
// 血压
final Map? bpInfo = event[NativeEventType.deviceRealBloodPressure];
if (bpInfo != null) {
setState(() {
_displayedText = "BloodPressure ${bpInfo.toString()}";
});
}
// 血氧
final int? bloodOxygenInfo = event[NativeEventType.deviceRealBloodOxygen];
if (bloodOxygenInfo != null) {
setState(() {
_displayedText = "BloodOxygen $bloodOxygenInfo";
});
}
// 温度
final String? temInfo = event[NativeEventType.deviceRealTemperature];
if (temInfo != null) {
setState(() {
_displayedText = "Temperature $temInfo";
});
}
//压力
final String? pressureInfo = event[NativeEventType.deviceRealPressure].toString();
if (pressureInfo != null){
setState(() {
_displayedText = "Pressure $pressureInfo";
});
}
//血糖
final String? bloodGlucoseInfo = event[NativeEventType.deviceRealBloodGlucose];
if (bloodGlucoseInfo != null){
setState(() {
_displayedText = "BloodGlucose $bloodGlucoseInfo";
});
}
//hrv
final String? hrvInfo = event[NativeEventType.deviceRealHRV];
if (pressureInfo != null){
setState(() {
_displayedText = "HRV $hrvInfo";
});
}
// 实时运动
final Map? sportInfo = event[NativeEventType.deviceRealSport];
if (sportInfo != null) {
setState(() {
_displayedText = "Sport: $sportInfo";
});
}
final Map? sportStateInfo = event[NativeEventType.deviceSportStateChange];
if (sportStateInfo != null) {
setState(() {
_displayedText = "Sport State: $sportStateInfo";
});
}
});
}
@override
void dispose() {
super.dispose();
debugPrint("-- ${toString()} 界面消失 -- ");
YcProductPlugin().cancelListening();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Device control"),
),
body: Column(
children: [
Expanded(
flex: 1,
child: SingleChildScrollView(
padding: const EdgeInsets.all(16.0),
child: Text(
_displayedText,
textAlign: TextAlign.left,
style: const TextStyle(
fontSize: 16.0,
),
),
),
),
Expanded(
flex: 3,
child: ListView.separated(
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
EasyLoading.show(status: "");
setState(() {
_displayedText = "";
});
switch (index) {
case 0:
YcProductPlugin()
.appControlTakePhoto(true)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 1:
YcProductPlugin()
.appControlTakePhoto(false)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 2:
YcProductPlugin()
.appControlSport(
DeviceSportState.start, DeviceSportType.run)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 3:
YcProductPlugin()
.appControlSport(
DeviceSportState.stop, DeviceSportType.run)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 4:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.heartRate)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 5:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.heartRate)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 6:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.bloodPressure)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 7:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.bloodPressure)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 8:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.bloodOxygen)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 9:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.bloodOxygen)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 10:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.bodyTemperature)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 11:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.bodyTemperature)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 12:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.pressure)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 13:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.pressure)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 14:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.bloodGlucose)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 15:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.bloodGlucose)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 16:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.hrv)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 17:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.hrv)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 18:
YcProductPlugin()
.appControlMeasureHealthData(
true,
DeviceAppControlMeasureHealthDataType
.vo2max)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
case 19:
YcProductPlugin()
.appControlMeasureHealthData(
false,
DeviceAppControlMeasureHealthDataType
.vo2max)
.then((value) {
if (value?.statusCode == PluginState.succeed) {
EasyLoading.showSuccess(_items[index]);
// final info = value?.data ;
// setState(() {
// _displayedText = info.toString();
// });
} else {
EasyLoading.showError("${_items[index]} failed");
}
});
default:
break;
}
},
child: ListTile(
title: Text("${index + 1}. ${_items[index]}"),
),
);
},
separatorBuilder: (BuildContext context, int index) {
return const Divider();
},
itemCount: _items.length),
),
],
),
);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/easylive/ycsdkresource.git
git@gitee.com:easylive/ycsdkresource.git
easylive
ycsdkresource
YCSDKResource
master

搜索帮助