From 56f4717c95ba4af754c03b53439d22c9b3ab0917 Mon Sep 17 00:00:00 2001
From: Daisy <>
Date: Tue, 26 Mar 2024 14:03:46 +0800
Subject: [PATCH] =?UTF-8?q?1=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=AE=89=E5=8D=93?=
=?UTF-8?q?=E6=9C=AC=E5=9C=B0=E9=80=9A=E7=9F=A5=E7=94=A8=E4=BA=8E=E5=AF=B9?=
=?UTF-8?q?=E8=AE=B2=E5=9C=A8=E5=90=8E=E5=8F=B0=E5=8F=8A=E5=89=8D=E5=8F=B0?=
=?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=97=B6=E7=9A=84=E5=91=BC=E5=8F=AB=E6=8F=90?=
=?UTF-8?q?=E9=86=92=202=EF=BC=8C=E4=BC=98=E5=8C=96=E7=82=B9=E5=87=BB?=
=?UTF-8?q?=E6=8E=A5=E5=90=AC=E5=90=8E=E7=9A=84=E6=98=BE=E7=A4=BA=E9=80=BB?=
=?UTF-8?q?=E8=BE=91=EF=BC=8C=E4=BB=A5=E5=8F=8A=E6=8E=A5=E5=90=AC=E5=A4=B1?=
=?UTF-8?q?=E8=B4=A5=E7=9A=84=E5=A4=84=E7=90=86=E5=92=8C=E6=8F=90=E9=86=92?=
=?UTF-8?q?=203=EF=BC=8C=E5=AF=B9=E8=AE=B2=E9=A1=B5=E9=9D=A2=E5=88=B7?=
=?UTF-8?q?=E6=96=B0UI=E7=9A=84=E4=BA=8B=E4=BB=B6=E9=80=BB=E8=BE=91?=
=?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=8C=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../android/app/src/main/AndroidManifest.xml | 4 ++
.../app/src/main/res/drawable/app_icon.png | Bin 0 -> 1216 bytes
star_lock/lib/main.dart | 4 +-
.../monitoring/lockMonitoring_logic.dart | 58 +++++-------------
.../monitoring/lockMonitoring_page.dart | 7 ++-
star_lock/lib/talk/udp/udp_reciverData.dart | 16 ++---
star_lock/lib/talk/udp/udp_talkClass.dart | 8 +--
star_lock/lib/tools/xs_jPhush.dart | 2 +-
8 files changed, 41 insertions(+), 58 deletions(-)
create mode 100644 star_lock/android/app/src/main/res/drawable/app_icon.png
diff --git a/star_lock/android/app/src/main/AndroidManifest.xml b/star_lock/android/app/src/main/AndroidManifest.xml
index 6ec34a31..dd64836f 100644
--- a/star_lock/android/app/src/main/AndroidManifest.xml
+++ b/star_lock/android/app/src/main/AndroidManifest.xml
@@ -27,6 +27,7 @@
+
@@ -35,6 +36,9 @@
+
diff --git a/star_lock/android/app/src/main/res/drawable/app_icon.png b/star_lock/android/app/src/main/res/drawable/app_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..20f2a164729518aebd3387eb21dd5d547fd91a92
GIT binary patch
literal 1216
zcmV;x1V8(UP)aa)=+Fx9~d##
zHyTv@LnE!Glp0FgqgJdGQHrLKfN;>G_uRcl@7UX0ZgFEtd~yWMiy_|0VV%k1oY
zW@dlCncv_%&m-4D_%)%507s%6NktPZ4~C-JB~qDGk}`0BW}odje|S8|@@SI2P=4(S
zW$W7OGzw`7z+1b{S*F4Wl7tEcN7g+)8)R$;%=svqY?Oj}c*ul|qvBGG8aph5sPw
zLcL;9;K7;jd@61{b|JM=5!@L<|4iGgZcqfA&7H+91KO?UlxT14P4Z
z23&&G->h%xcl()GV<9_(&~Re7SSZ0&kFbE_ktoOG7!n159opv{$@VtB9vW;cBFGk4iJ=^1~YH8kmmzKeb{dSS#Fp7h61C#EUeLEH2NF<9YX6yduz
z9h&o)rErdR5+wU!(6Iqwm8=p
zsi3{SNUct{Z!A$myQV;;SDYv4R6CcC26HS(!!cJVN^?jc!m8!c5W~T}+%+3rDwjfc
z3(frt&J|$z#-5qFm8#ZL1jnOKAD-D#uKi%hI|q;*J@%cq8#+dO(9u#4hWhes5SF-o
zWP*YvZvSMDZ1~D1f+-f9T3rpe)R5j-rC*_yjggVJ28dtX%zpvCHCy(zIX|9F7V72q
z7A$>q|I}GGJ->|tPaafa!TcL*vghZp&_1xKKx8N4!K+NNVnZyMYMUZkCrK_r_@GF&
zM$vX-4vt-Z_Ts=LMj3oYSg!GRchYmH!x7q$6XT`l{oMi
z5p!S#E_ty)*D^t{;EJ<`dv>)pV~y$Z(-jRKw9~c#ldDQ^Dl)+$>RWN(1*-|utzAd$
zpFfm`U33`^@D1PEe!DcBw%wwGiP56K8R^)9nj@3c=KWJI+-Y2{P8;_!ul2kCx>;Q!
zN().listen((event) {
- if (UDPTalkClass().isEndCall == true) {
+ eventBus.on().listen((event) async {
+ state.udpStatus.value = event.udpStatus;
+ state.oneMinuteTime.value = 0;
+
+ // 如果已经挂断,则取消定时器并退出
+ if (state.udpStatus.value == 0 && UDPTalkClass().isEndCall == true) {
state.oneMinuteTimeTimer.cancel();
+ state.oneMinuteTime.value = 0;
return;
}
- state.udpStatus.value = event.udpStatus;
+ // 如果是接听状态,则启动定时器更新通话时间
if (state.udpStatus.value == 8) {
- if (state.oneMinuteTime.value >= 60) {
- // 超过60秒了
- _getUDPStatusRefreshUIEvent!.cancel();
- if (state.oneMinuteTimeTimer != null) {
- state.oneMinuteTimeTimer.cancel();
- }
- initiateUdpHangUpAction();
- print('输出挂断1');
- return;
- }
- // 接听成功了,然后刷新界面的时间 60秒以后自动挂断
+ state.oneMinuteTimeTimer.cancel(); // 取消旧定时器
state.oneMinuteTimeTimer =
- Timer.periodic(const Duration(seconds: 1), (Timer t) async {
+ Timer.periodic(const Duration(seconds: 1), (Timer t) {
state.oneMinuteTime.value++;
- // Get.log('state.oneMinuteTime.value:${state.oneMinuteTime.value}');
- // if (state.oneMinuteTime.value >= 60) {
- // // 超过60秒了
- // _getUDPStatusRefreshUIEvent!.cancel();
- // if (state.oneMinuteTimeTimer != null) {
- // state.oneMinuteTimeTimer.cancel();
- // }
- // initiateUdpHangUpAction();
- // print('输出挂断1');
- // state.oneMinuteTime.value = 0;
- // // 挂断
- // UDPSenderManage.sendMainProtocol(
- // command: 150,
- // commandTypeIsCalling: 1,
- // subCommand: 30,
- // lockID: UDPManage().lockId,
- // lockIP: UDPManage().host,
- // userMobile: await state.userUid,
- // userMobileIP: await state.userMobileIP,
- // endData: []);
-
- // CallTalk().stopPcmSound();
- // // 关闭当前界面
- // Get.back();
- // }
+ if (state.oneMinuteTime.value >= 60) {
+ t.cancel(); // 取消定时器
+ initiateUdpHangUpAction(); // 挂断操作
+ print('通话时间超过60秒,自动挂断');
+ state.oneMinuteTime.value = 0;
+ }
});
}
});
@@ -98,8 +74,8 @@ class LockMonitoringLogic extends BaseGetXController {
//发起接听命令,每隔一秒钟发一次,六秒无应答则失败
void initiateUdpAnswerAction() {
state.answerTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
- state.answerSeconds++;
udpAnswerAction();
+ state.answerSeconds++;
//如果接听成功,取消定时器;接听失败,继续发接听命令
if (UDPTalkClass().status == 8) {
diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart
index 61ad9c4c..2fae5f2c 100644
--- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart
+++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart
@@ -169,7 +169,11 @@ class _LockMonitoringPageState extends State {
return Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [
// 接听
Obx(() => bottomBtnItemWidget(
- getAnswerBtnImg(), getAnswerBtnName(), Colors.white, () async {
+ state.isClickAnswer.value == true
+ ? 'images/main/icon_lockDetail_monitoringUnTalkback.png'
+ : getAnswerBtnImg(),
+ state.isClickAnswer.value == true ? '长按说话' : getAnswerBtnName(),
+ Colors.white, () async {
if (state.isClickAnswer.value == false) {
logic.initiateUdpAnswerAction();
state.isClickAnswer.value = true;
@@ -200,6 +204,7 @@ class _LockMonitoringPageState extends State {
state.isClickHangUp.value = true;
} else {
print('点了这里?');
+ state.isClickHangUp.value = false;
UDPTalkClass().stopLocalAudio();
}
}),
diff --git a/star_lock/lib/talk/udp/udp_reciverData.dart b/star_lock/lib/talk/udp/udp_reciverData.dart
index f34e95f3..5766989e 100644
--- a/star_lock/lib/talk/udp/udp_reciverData.dart
+++ b/star_lock/lib/talk/udp/udp_reciverData.dart
@@ -68,6 +68,7 @@ class CommandUDPReciverManager {
// 停止声音
UDPTalkClass().stopLocalAudio();
eventBus.fire(GetUDPStatusRefreshUI(UDPTalkClass().status));
+ print('接听反馈刷新UI1');
}
}
break;
@@ -105,7 +106,6 @@ class CommandUDPReciverManager {
break;
case 30:
{
- print('反馈挂断1');
// 挂断
if ((data[7] & 0x3) == 1) {
// 对方结束对讲
@@ -114,13 +114,13 @@ class CommandUDPReciverManager {
//结束对讲反馈
print("结束对讲反馈");
}
- UDPTalkClass().callNoAnswer();
- // UDPTalkClass().status = 0;
- // UDPTalkClass().isBeCall = false;
- // UDPTalkClass().stopLocalAudio();
- // CallTalk().stopPcmSound();
- // eventBus.fire(GetUDPStatusRefreshUI(UDPTalkClass().status));
- // Get.back();
+ UDPTalkClass().status = 0;
+ UDPTalkClass().isBeCall = false;
+ UDPTalkClass().stopLocalAudio();
+ CallTalk().stopPcmSound();
+ eventBus.fire(GetUDPStatusRefreshUI(UDPTalkClass().status));
+ Get.back();
+ print('挂断反馈刷新UI1');
}
break;
case 140:
diff --git a/star_lock/lib/talk/udp/udp_talkClass.dart b/star_lock/lib/talk/udp/udp_talkClass.dart
index 2cf4f029..d12ef82f 100644
--- a/star_lock/lib/talk/udp/udp_talkClass.dart
+++ b/star_lock/lib/talk/udp/udp_talkClass.dart
@@ -104,9 +104,10 @@ class UDPTalkClass {
Future _showNotification(
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin) async {
const AndroidNotificationDetails androidPlatformChannelSpecifics =
- AndroidNotificationDetails('your channel id', 'your channel name',
+ AndroidNotificationDetails('1', 'flutter_channel',
importance: Importance.max,
priority: Priority.high,
+ playSound: true,
ticker: 'ticker');
const NotificationDetails platformChannelSpecifics =
NotificationDetails(android: androidPlatformChannelSpecifics);
@@ -171,16 +172,13 @@ class UDPTalkClass {
//呼叫有响铃无应答处理
void callNoAnswer() {
- print('无应答处理');
-
+ // print('无应答处理');
stopLocalAudio();
CallTalk().stopPcmSound();
status = 0;
isBeCall = false;
isEndCall = true;
LockMonitoringState().isClickHangUp.value = false;
-
- eventBus.fire(GetUDPStatusRefreshUI(status));
Get.back();
}
}
diff --git a/star_lock/lib/tools/xs_jPhush.dart b/star_lock/lib/tools/xs_jPhush.dart
index edd217dc..1ced70b1 100644
--- a/star_lock/lib/tools/xs_jPhush.dart
+++ b/star_lock/lib/tools/xs_jPhush.dart
@@ -15,7 +15,7 @@ class XSJPushProvider {
appKey: "7ff37d174c1a568a89e98dad",
channel: "flutter_channel",
production: false,
- debug: true,
+ debug: false,
);
jpush.addEventHandler(