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 00000000..20f2a164
Binary files /dev/null and b/star_lock/android/app/src/main/res/drawable/app_icon.png differ
diff --git a/star_lock/lib/main.dart b/star_lock/lib/main.dart
index 4647ee9a..44bc6a36 100644
--- a/star_lock/lib/main.dart
+++ b/star_lock/lib/main.dart
@@ -53,9 +53,9 @@ initLocalNotification() async {
WidgetsFlutterBinding.ensureInitialized();
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
- final AndroidInitializationSettings initializationSettingsAndroid =
+ const AndroidInitializationSettings initializationSettingsAndroid =
AndroidInitializationSettings('app_icon');
- final InitializationSettings initializationSettings =
+ const InitializationSettings initializationSettings =
InitializationSettings(android: initializationSettingsAndroid);
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
}
diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart
index 92a96d31..4889415c 100644
--- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart
+++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart
@@ -43,53 +43,29 @@ class LockMonitoringLogic extends BaseGetXController {
StreamSubscription? _getUDPStatusRefreshUIEvent;
void _getUDPStatusRefreshUIAction() {
_getUDPStatusRefreshUIEvent =
- eventBus.on().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(