拒听的时候怎么老跳出震铃界面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;
你搜搜以前的贴子,以前好多人问过,好像还没有比较好的办法吧。
有人好像是把震铃界面移动屏幕外边让用户看不见。
按理论说,这种现象是正确的,因为来电信息是RIL广播给系统的,所有监听的Application都能收到,也就是说你的程序和系统的电话管理程序都能收到,但你的程序肯定比系统的晚。
天啊为什么要这么处理啊,你在ril层把cpi和ring给截住,不让它发给app不久结了吗?我实在看不下去了
yuanhaili:
拦截到消息后,怎么不让它发给app呢?
拦截到消息后,怎么不让它发给app呢?
消息肯定是会发的,ring的消息是广播,除非你在Ril_ring消息时就挂掉电话,不过那个时候还没办法得到来电信息
我当时是绕过去的,把系统设为静音,无振动,然后接通的话就恢复
不过TAPI肯定不行