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?O&#j}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(