曙海教育集团论坛3G手机技术专区Symbian开发 → Symbian 深入讨论 RConnectionMonitor并用此来统计流量


  共有6838人关注过本帖树形打印

主题:Symbian 深入讨论 RConnectionMonitor并用此来统计流量

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
Symbian 深入讨论 RConnectionMonitor并用此来统计流量  发帖心情 Post By:2010-12-3 16:02:56

今天来聊聊关于如何使用RConnectionMonitor来统计流量。

RConnectionMonitor被SYMBIAN封装的受不了。

大家详细看看OS 内核,把好好的一个API封装的想自杀拟的。

因为这种变态的封装使得我们好多参数都得不到,郁闷之极啊。

如果我们能得到流量,并定位到指定的程序该多好啊。

哈哈。很多事情都往往......但是总是美好的瑕想。

少费话了,看我们如何应用RConnectionMonitor这个来统计流量吧。

我们先来看看RConnectionMonitor这个的基本用法。

假定您已经习惯了Symbian的Observer模式。那么请先继承MConnectionMonitorObserv

er吧

//初始化

void CMonitorNetWork::ConstructL()

{

TInt err = iConnMon.ConnectL();

iConnMon.NotifyEventL(*this);

}

//当发生所有事件时,都可以回调到这里

//比如新的连接,连接断开时都会回调

void CMonitorNetWork::EventL( const CConnMonEventBase &aEvent )

{

case EConnMonCreateConnection:

{

TUint connectionId = eventCreate->ConnectionId();

//所有的新建的连接都会回调到这里

//我们可以得到连接的索引

//那么连接的索引对于我们来说有什么作用呢?哈哈当然有作用。

//让我们来看看下面的API。KDownlinkData哈哈是不是很惊喜可以得到下载的流量。

//对就是这样的。让我们来分析一下这个API。

//aConnectionId 连接索引,0 子连接,KDownlinkData 需要得到属性的值,iValue所得到的值

//GetUintAttribute( aConnectionId, 0, KDownlinkData, iValue, iStatus);

}

}

//哈哈。我们搞清楚了GetUintAttribute的每一项是不是所有的事情都搞定了呢。

//当然不是,在测试中发现有时候得不到值。

void CMonitorFlow::GetDownLinkData(TUint aConnectionId)

{

iState = EGet;

iMonitor.GetUintAttribute( aConnectionId, 0, KDownlinkData, iValue, iStatus);

SetActive();

}

//注意:在这里每1S种得到一次值,就可以得到相应的流量值了。系统刷新的比较慢。我们就忍了吧。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

Symbian 深入讨论 RConnectionMonitor并用此来统计流量








签名