diff --git a/lib/components/commonFun.dart b/lib/components/commonFun.dart index 4a92ebc..780322b 100644 --- a/lib/components/commonFun.dart +++ b/lib/components/commonFun.dart @@ -1,9 +1,11 @@ +import 'dart:async'; import 'dart:convert'; import 'dart:developer' as developer; import 'dart:io'; import 'dart:math'; import 'package:ai_save_account/ai_save_account.dart'; +import 'package:audioplayers/audio_cache.dart'; import 'package:camera/camera.dart'; import 'package:convert/convert.dart'; import 'package:crypto/crypto.dart' as crypto; @@ -17,6 +19,7 @@ import 'package:fluttertoast/fluttertoast.dart'; import 'package:hyzp_ybqx/provider/player_region.dart'; import 'UserInfo.dart'; +import 'dioFun.dart'; //////////////////////////////////////////// // begin hyzp_ybqx-Commit022-区县切换新方法-OK @@ -71,7 +74,48 @@ const serviceUrl_ybqx_media = 'http://125.64.218.67:9906/'; // 2、新增sip参数,0表示市级平台,1表示区县平台。之前是通过不同端口来分别访问市级和区县的,因缩减了我们的端口数,现在统一使用1个端口,通过sip参数来区分市级和区县 const String setSphericalCameraUrl = 'http://125.64.218.67:9903/'; //新版的 const int g_sip = 1; // 新增sip参数,0表示市级平台,1表示区县平台。 -bool g_bVoiceRemind = false; // 用户设置是否开启语音提醒 + +///用于定时提醒的变量和函数 +//获取待审核黑烟车记录 +List listReviewed = []; +bool g_bVoiceRemind = false; // 用户设置是否开启语音提醒 +int g_remindGap = 60; // 提醒间隔默认为60S,0表示取消定时提醒 +Timer g_remindTimer; //定时提醒变量 + +// 设置定时提醒 +setRemindTimer() { + // 先取消旧的定时任务 + if (null != g_remindTimer) { + g_remindTimer.cancel(); //取消计时器 + } + + // 设置新的定时任务 + if (g_remindGap > 0) { + ///循环执行定时任务,间隔 g_remindGap 秒 + g_remindTimer = Timer.periodic(Duration(seconds: g_remindGap), (timer) { + ///定时任务 + doRemind(); + }); + } +} + +// 执行语音提醒 +Future doRemind() async { + // 获取待审核黑烟车记录 + listReviewed.clear(); + print("listReviewed = $listReviewed"); + await getReviewedList(); //注意:访问区县后台接口,需要统一添加区县代码参数 + print("listReviewed = $listReviewed"); + if (g_bVoiceRemind && listReviewed.length > 0) { + // if (g_bVoiceRemind) { + // import 'dart:io'; + // import 'package:audioplayers/audio_cache.dart'; + // print("播放:语音提醒.mp3"); + AudioCache().play(File('audio/语音提醒.mp3').path); //语音提醒 + } +} + +///用于定时提醒的变量和函数 // { // "ret": 200, diff --git a/lib/components/hyxx_data_handle.dart b/lib/components/hyxx_data_handle.dart index 9c36ac3..439944f 100644 --- a/lib/components/hyxx_data_handle.dart +++ b/lib/components/hyxx_data_handle.dart @@ -447,9 +447,6 @@ List listGetTsjj = []; //获取指定id的抓拍记录列表存入listGetZpjl List listGetZpjl = []; -//获取待审核黑烟车记录 -List listReviewed = []; - //workflow 整型 审核状态: 1=>待审 | 2=>已初审 | 999=>已复审 | 1000=>非黑烟车 Map mapAuditStatus = { 1: "待审", diff --git a/lib/main.dart b/lib/main.dart index 7f79f2b..9864b49 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -119,6 +119,9 @@ class _MyAppState extends State { // g_bVoiceRemind = (null == g_bVoiceRemind) ? false : g_bVoiceRemind; // 默认关闭 g_bVoiceRemind = (null == g_bVoiceRemind) ? true : g_bVoiceRemind; // 默认开启 // print('g_bVoiceRemind = $g_bVoiceRemind'); + g_remindGap = await Storage.getInt('nRemindGap'); + g_remindGap = (null == g_remindGap) ? 60 : g_remindGap; // 提醒间隔默认为60S + eventBus.fire(VoiceRemindUpdate('g_bVoiceRemind 数据已更新')); } diff --git a/lib/pages/tabs/Tabs.dart b/lib/pages/tabs/Tabs.dart index 3503d4c..ead7e70 100644 --- a/lib/pages/tabs/Tabs.dart +++ b/lib/pages/tabs/Tabs.dart @@ -1,3 +1,4 @@ +import 'dart:async'; import 'dart:io'; import 'package:badges/badges.dart'; @@ -58,6 +59,9 @@ class _TabsState extends State { String sAppBar = 'Flutter Demo'; PageController _pageController; + ///定时提醒变量 + // Timer g_remindTimer; + @override void initState() { super.initState(); @@ -87,17 +91,39 @@ class _TabsState extends State { // // print('g_bVoiceRemind = $g_bVoiceRemind'); // eventBus.fire(VoiceRemindUpdate('g_bVoiceRemind 数据已更新')); - // 获取待审核黑烟车记录 - print("listReviewed = $listReviewed"); - await getReviewedList(); //注意:访问区县后台接口,需要统一添加区县代码参数 - print("listReviewed = $listReviewed"); - if (g_bVoiceRemind && listReviewed.length > 0) { - // if (g_bVoiceRemind) { - // import 'dart:io'; - // import 'package:audioplayers/audio_cache.dart'; - // print("播放:语音提醒.mp3"); - AudioCache().play(File('audio/语音提醒.mp3').path); //语音提醒 - } + // 执行语音提醒 + doRemind(); + + //设置定时提醒,循环执行定时任务,间隔 g_remindGap 秒 + setRemindTimer(); + + // g_remindTimer = Timer.periodic(Duration(seconds: g_remindGap), (timer) { + // ///定时任务 + // doRemind(); + // }); + } + + // // 执行语音提醒 + // Future doRemind() async { + // // 获取待审核黑烟车记录 + // listReviewed.clear(); + // print("listReviewed = $listReviewed"); + // await getReviewedList(); //注意:访问区县后台接口,需要统一添加区县代码参数 + // print("listReviewed = $listReviewed"); + // if (g_bVoiceRemind && listReviewed.length > 0) { + // // if (g_bVoiceRemind) { + // // import 'dart:io'; + // // import 'package:audioplayers/audio_cache.dart'; + // // print("播放:语音提醒.mp3"); + // AudioCache().play(File('audio/语音提醒.mp3').path); //语音提醒 + // } + // } + + @override + void dispose() { + // ///取消计时器 + // g_remindTimer.cancel(); + super.dispose(); } double _activeIconWidth = 68; diff --git a/lib/services/Storage.dart b/lib/services/Storage.dart index 70d6acf..38ca376 100644 --- a/lib/services/Storage.dart +++ b/lib/services/Storage.dart @@ -11,6 +11,16 @@ class Storage { return sp.getString(key); } + static Future setInt(String key, int value) async { + SharedPreferences sp = await SharedPreferences.getInstance(); + sp.setInt(key, value); + } + + static Future getInt(String key) async { + SharedPreferences sp = await SharedPreferences.getInstance(); + return sp.getInt(key); + } + static Future setBool(String key, bool value) async { SharedPreferences sp = await SharedPreferences.getInstance(); sp.setBool(key, value);