请教下关于自己做来电防火墙存在的问题,拒听的时候老跳出震铃界面2秒左右,然后自动关闭,如何解决呢

valengu   2007-3-1 16:35 楼主
拒听的时候怎么老跳出震铃界面2秒左右,然后自动关闭,如何解决呢?拒听理论来说,不应该出现震铃界面呀,但是怎么每次拒听会跳出震铃窗口呢,如何处理呢?
附加代码(知道的请告诉下好么,万分感谢!!!!!):
case LINE_APPNEWCALL:
   SetRing(FALSE);
   InComingFlags = 1;
   hq = GetForegroundWindow();
   PostMessage(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL);
   //int r=2;
   break;
   case LINE_CALLINFO:
   switch(dwParam1)
   {
      case LINECALLINFOSTATE_CALLERID:
      {   
        LINECALLINFO *lpCallInfo;
        lpCallInfo = (LINECALLINFO *)malloc(sizeof(LINECALLINFO)+1000);
        memset(lpCallInfo, 0, sizeof(LINECALLINFO)+1000);
        lpCallInfo->dwTotalSize = sizeof(LINECALLINFO)+1000;
        while (1)
         {
          lineGetCallInfo( (HCALL)hDevice, lpCallInfo);
          if (lpCallInfo->dwTotalSize < lpCallInfo->dwNeededSize)
        lpCallInfo = (LINECALLINFO *)realloc(lpCallInfo,lpCallInfo->dwNeededSize);
          else break;
        }
        TCHAR szPhoneNumber[30];
        m_strCenter="13391466780";
        lstrcpy(szPhoneNumber,(LPTSTR)((LPSTR)((DWORD)lpCallInfo+(DWORD)lpCallInfo->dwCallerIDOffset)));
         free(lpCallInfo);

        //比较过来的电话和定义好的电话
        if(wcscmp(m_strCenter,szPhoneNumber)!=0)
         {   

           lineDrop((HCALL)hDevice,NULL,0);
            //SetRing(TRUE);
            //Sleep(500);
            CurrentLineClose();
           OpenLine();
           CreateThread(NULL,0,(LPTHREAD_START_ROUTINE )ThreadProc_ChangeRingStatus,0,0,NULL);                                       
          hq1 = GetForegroundWindow();
          SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL);       
        }  
                    //Sleep(1000);
        SetRing(TRUE);
        Sleep(1000);
        hq1 = GetForegroundWindow();
        SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL);                       
        }
        break;          
        }
   break;

回复评论 (9)

你搜搜以前的贴子,以前好多人问过,好像还没有比较好的办法吧。
有人好像是把震铃界面移动屏幕外边让用户看不见。
点赞  2007-3-1 18:37
按理论说,这种现象是正确的,因为来电信息是RIL广播给系统的,所有监听的Application都能收到,也就是说你的程序和系统的电话管理程序都能收到,但你的程序肯定比系统的晚。
点赞  2007-3-2 11:49
有没有什么好办法呢
点赞  2007-3-12 13:37
天啊为什么要这么处理啊,你在ril层把cpi和ring给截住,不让它发给app不久结了吗?我实在看不下去了
点赞  2007-4-5 17:31
hehe~
点赞  2007-4-5 19:22
yuanhaili:
拦截到消息后,怎么不让它发给app呢?
点赞  2007-4-20 12:04
关注一下
点赞  2007-4-20 16:43
顶………………
点赞  2007-4-20 16:44
拦截到消息后,怎么不让它发给app呢?

消息肯定是会发的,ring的消息是广播,除非你在Ril_ring消息时就挂掉电话,不过那个时候还没办法得到来电信息
我当时是绕过去的,把系统设为静音,无振动,然后接通的话就恢复
不过TAPI肯定不行
点赞  2007-4-20 18:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复