短信来电防火墙问题 气泡 屏幕 RIL Maiprule TAPI 专家请进

pcmouse 2008-12-20 12:50:15
问题描述:如何彻底的解决window mobile短信来电防火墙的问题呢?
我的问题跟大家碰到的问题一样!

Maiprule可以实现短信截断,用马上deletemsg的办法,消除气泡提示,对于慢的机器有可能还不行,
但是屏幕还是无缘故的亮了起来,当然可以自己做个友好提示,但是还是没有根本解决问题。

来电拦截目前我还没有找到很好的办法!

有些人说RIL层也许可以解决。
但是如果自己写个RIL(大家都知道RIL由厂商提供)肯定破坏机器的稳定性!而且你压根没办法知道厂商
到底有没有修改ril.dll。大家都了解一点点RIL,利用RIL_Initialize得到一个HRIL,
每个应用程序都可以RIL_Initialize所以每个应用程序都会有ResultCallback和NotifyProc,所以你可以截获
短信通话甚至GPRS等等,但是却没有办法做到截断,因为其它应用程序同样有一个HRIL。
所以大家无论怎么个RIL_DeleteMsg,RIL_HungUp都没用,因为其它HRIL同样知道这些事件。
MSDN里面可以查到RIL有这样一个函数 : RIL_DisableNotifications 但是仅仅对你的HRIL进行Disable而
没办法Disable cprog.exe的HRIL!

汗,一个字,期待高人解决此题!
...全文
782 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaoxiuhua 2009-05-22
  • 打赏
  • 举报
回复
各位,我用TAPI在smartphone下使用,没法再有电话呼入的时候截获到消息,而是要等到应答或者忽略键按下后,才会进入到回调函数,这可怎么办啊?
这样的话,截获跟没截获就没区别了

急着解决,望大家能帮忙下
ppc_2008 2009-03-23
  • 打赏
  • 举报
回复
关注
clh213 2009-03-23
  • 打赏
  • 举报
回复
关闭cprog.exe,这个办法太野蛮,非常不稳定。如果正常的来电需要cprog.exe来处理,但是cprog.exe没有启动起来,问题就大了
simon_new88 2009-03-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 clh213 的回复:]
关闭cprog.exe,这个办法太野蛮,非常不稳定。如果正常的来电需要cprog.exe来处理,但是cprog.exe没有启动起来,问题就大了
[/Quote]

[Quote=引用 7 楼 suheart 的回复:]
ril的代码大家都是没有办法修改的,除非是自己有手机的操作系统的代码,如果要截断消息,我知道的只有在ril的代码中修改,让ril广播一个特殊的消息给上层的应用,这样MS的其他应用就不会知道有短信来啊,电话来的消息
[/Quote]

正如7楼所述,温柔的方法万般无奈之下只好用野蛮的。
其实Kill cprog.exe 可以和 start cprog.exe 结合使用,可以使系统稳定。比如开发来电防火墙的话,对特定号码的特定行为动作是事先就设定好的,而且这些动作是在接收到的来电消息的瞬间就执行的。所以cprog.exe 处于关闭的状态只是一小段时间。
对于特定号码,如果你想响挂断,就用自己的TAPI代码挂断它,然后再开启cprog.exe 。
如果想接起,就用自己的TAPI代码接通,通话完毕后在开启cprog.exe 。
如果想响铃,就直接开启cprog.exe ,cprog.exe 在开启后检测到有拨进的电话会直接响铃!(已经测试)。并且,在开启cprog.exe之前可以做很多工作,比如修改注册表,调整铃声,实现铃声自定义。

呵呵,详细可参考:http://blog.csdn.net/simon_new88/archive/2009/03/20/4008877.aspx
cjwn 2009-03-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 suheart 的回复:]
ril的代码大家都是没有办法修改的,除非是自己有手机的操作系统的代码,如果要截断消息,我知道的只有在ril的代码中修改,让ril广播一个特殊的消息给上层的应用,这样MS的其他应用就不会知道有短信来啊,电话来的消息
[/Quote]
Kill Cprog.exe 不是正常的工作模式。Kill的时机掌握的不好,导致系统状态混乱。
suheart 2009-03-22
  • 打赏
  • 举报
回复
ril的代码大家都是没有办法修改的,除非是自己有手机的操作系统的代码,如果要截断消息,我知道的只有在ril的代码中修改,让ril广播一个特殊的消息给上层的应用,这样MS的其他应用就不会知道有短信来啊,电话来的消息
simon_new88 2009-03-20
  • 打赏
  • 举报
回复
经过几天的研究和实践,实现了来电消息截断!

用TAPI截获来电消息,同时搜索当前运行的所有进程,关闭“cprog.exe”进程。
cprog.exe 是Windows Mobile上电话进程。该进程关闭之后,来电时手机没有任何反应。
这样,你自己的电话程序就可以独享来电消息了!

当然,这个方法还是有局限性。如果还有另一个程序响应来电消息,这个办法不能阻止它响应该消息。
simon_new88 2009-03-16
  • 打赏
  • 举报
回复
我在开发过程中也碰到同样的问题:

可以截获消息,但是不能截断消息。
如何只让自己的程序响应来电消息,而其他程序不能响应来点消息?

Up。。。
zl_inter 2009-02-02
  • 打赏
  • 举报
回复
找熟人去微软做通关系,人家手上有不开放的OEM的API,一下可以搞定
Qihua_wu 2009-01-18
  • 打赏
  • 举报
回复
我面临同样的问题,关注
gdoupanguoqing 2009-01-08
  • 打赏
  • 举报
回复
我也在为这个事发愁呢
短信防火墙用Maiprule是最好的办法了.
来电防火墙用TAPI会响铃, 用RIL还是会响铃.
有人说用RIL可以做到不响铃, 但是没找到办法
beyondma 2008-12-20
  • 打赏
  • 举报
回复
MAPIcom的做法肯定是最推荐的,RIL不能适应所有的机器,不推荐的.

7,660

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧