|
|
@@ -8,7 +8,7 @@ import {
|
|
8
|
8
|
allRecorderFilesAction
|
|
9
|
9
|
} from '@/uni_modules/yao-lister';
|
|
10
|
10
|
import permision from "@/js_sdk/wa-permission/permission.js";
|
|
11
|
|
-import { formatPhoneNumber } from '../../utils/util';
|
|
|
11
|
+import { formatPhoneNumber, simpleDebounce } from '../../utils/util';
|
|
12
|
12
|
|
|
13
|
13
|
export default {
|
|
14
|
14
|
namespaced: true,
|
|
|
@@ -20,6 +20,7 @@ export default {
|
|
20
|
20
|
hasCallPhonePermission: false, // 拨打电话权限
|
|
21
|
21
|
hasReadCallLogPermission: false, // 读取通话记录权限
|
|
22
|
22
|
hasReadPhoneNumbersPermission: false, // 读取电话号码权限
|
|
|
23
|
+ isPhoneListening: false, // 电话监听状态
|
|
23
|
24
|
form: {
|
|
24
|
25
|
clueId: undefined,
|
|
25
|
26
|
fileUrl : undefined,
|
|
|
@@ -52,6 +53,9 @@ export default {
|
|
52
|
53
|
SET_READ_PHONE_NUMBERS_PERMISSION: (state, value) => {
|
|
53
|
54
|
state.hasReadPhoneNumbersPermission = value;
|
|
54
|
55
|
},
|
|
|
56
|
+ SET_PHONE_LISTENING_STATUS: (state, value) => {
|
|
|
57
|
+ state.isPhoneListening = value;
|
|
|
58
|
+ },
|
|
55
|
59
|
SET_CALLER_PHONE: (state, phoneNumber) => {
|
|
56
|
60
|
state.form.caller = phoneNumber;
|
|
57
|
61
|
},
|
|
|
@@ -303,6 +307,74 @@ export default {
|
|
303
|
307
|
// 打开系统设置
|
|
304
|
308
|
handleOpenSet() {
|
|
305
|
309
|
permision.gotoAppPermissionSetting('android.permission.RECORD_AUDIO');
|
|
|
310
|
+ },
|
|
|
311
|
+
|
|
|
312
|
+ // 启动电话监听
|
|
|
313
|
+ startPhoneListener({ commit, dispatch , state }) {
|
|
|
314
|
+ try {
|
|
|
315
|
+ if(state.isPhoneListening){
|
|
|
316
|
+ // 已经开启监听就不要了
|
|
|
317
|
+ return;
|
|
|
318
|
+ }
|
|
|
319
|
+ dispatch("checkAllPermissions").finally(()=>{
|
|
|
320
|
+ startPhoneListener(res => {
|
|
|
321
|
+ simpleDebounce(()=>{
|
|
|
322
|
+ // 毕竟重复监听 套一个防抖
|
|
|
323
|
+ dispatch("handleCallBack");
|
|
|
324
|
+ },500)
|
|
|
325
|
+ // 14:44:54.429 空闲状态, 监听结果============================== at store/modules/call.js:324
|
|
|
326
|
+
|
|
|
327
|
+ // 14:47:29.570 state=12== 2 13417106969
|
|
|
328
|
+
|
|
|
329
|
+ // 14:47:29.570 phoneState 通话中
|
|
|
330
|
+
|
|
|
331
|
+ // 14:47:29.571 通话中, 监听结果============================== at store/modules/call.js:324
|
|
|
332
|
+
|
|
|
333
|
+ // 14:47:35.712 state=12== 0 13417106969
|
|
|
334
|
+
|
|
|
335
|
+ // 14:47:35.713 phoneState 空闲状态
|
|
|
336
|
+
|
|
|
337
|
+ // 14:47:35.728 空闲状态, 监听结果============================== at store/modules/call.js:324
|
|
|
338
|
+
|
|
|
339
|
+ // 14:47:36.220 state=12== 0 13417106969
|
|
|
340
|
+
|
|
|
341
|
+ // 14:47:36.220 phoneState 空闲状态
|
|
|
342
|
+
|
|
|
343
|
+ // 14:47:36.220 空闲状态, 监听结果============================== at store/modules/call.js:324
|
|
|
344
|
+ console.log(res, "监听结果==============================");
|
|
|
345
|
+ commit('SET_PHONE_LISTENING_STATUS', true);
|
|
|
346
|
+ });
|
|
|
347
|
+ });
|
|
|
348
|
+ } catch (error) {
|
|
|
349
|
+ console.error('启动电话监听失败:', error);
|
|
|
350
|
+ commit('SET_PHONE_LISTENING_STATUS', false);
|
|
|
351
|
+ throw error;
|
|
|
352
|
+ }
|
|
|
353
|
+ },
|
|
|
354
|
+ handleCallBack(){
|
|
|
355
|
+
|
|
|
356
|
+ },
|
|
|
357
|
+ // 停止电话监听
|
|
|
358
|
+ stopPhoneListener({ commit }) {
|
|
|
359
|
+ try {
|
|
|
360
|
+ stopPhoneListener(res => {
|
|
|
361
|
+ console.log(res, "3123123123");
|
|
|
362
|
+ commit('SET_PHONE_LISTENING_STATUS', false);
|
|
|
363
|
+ });
|
|
|
364
|
+ } catch (error) {
|
|
|
365
|
+ console.error('停止电话监听失败:', error);
|
|
|
366
|
+ commit('SET_PHONE_LISTENING_STATUS', false);
|
|
|
367
|
+ throw error;
|
|
|
368
|
+ }
|
|
|
369
|
+ },
|
|
|
370
|
+
|
|
|
371
|
+ // 切换电话监听状态
|
|
|
372
|
+ togglePhoneListener({ state, dispatch }) {
|
|
|
373
|
+ if (state.isPhoneListening) {
|
|
|
374
|
+ return dispatch('stopPhoneListener');
|
|
|
375
|
+ } else {
|
|
|
376
|
+ return dispatch('startPhoneListener');
|
|
|
377
|
+ }
|
|
306
|
378
|
}
|
|
307
|
379
|
},
|
|
308
|
380
|
}
|