青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

franksunny的個人技術空間
獲得人生中的成功需要的專注與堅持不懈多過天才與機會。 ——C.W. Wendte

 

關于Symbian識別移動、聯通和其它運營商網絡的方法

 

自從Symbian OSEKA2提供了強大的CTelephony,這之后很多跟網絡相關的參數都通過這個獲取,像識別目前手機是注冊的是移動還是聯通等信息網絡上傳的比較多的也是通過該方法,特別是嘯天兄在nokia論壇分享了代碼之后,網絡上大多采用其代碼,當然也包括我這樣的懶人在內,而且往往很多人都沒有注意最關鍵的原理即“國際移動用戶識別碼(IMSIInternational Mobile Subscriber Identification Number)是區別移動用戶的標志,儲存在SIM卡中,可用于區別移動用戶的有效信息。IMSIMCCMNCMSIN組成,其中MCC為移動國家號碼,由3位數字組成,唯一地識別移動客戶所屬的國家,我國為460MNC為網絡id,由2位數字組成,用于識別移動客戶所歸屬的移動網絡,中國移動為00,中國聯通為01MSIN為移動客戶識別碼,采用等長11位數字構成”。具體詳見http://wiki.forum.nokia.com/index.php/%E5%8C%BA%E5%88%86%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7SIM%E5%8D%A1%E6%98%AF%E7%A7%BB%E5%8A%A8%E8%BF%98%E6%98%AF%E8%81%94%E9%80%9A

最近在使用該代碼時,發現假如當手機處于離線狀態下,則不論有無插SIM卡,使用嘯天兄的方法,就識別不出來了,這個應該跟CTelephony的實現有關,本人試著通過其源碼去了解了,但是貌似跟蹤到底層沒有完全公開,或者說個人看源碼能力還太弱了些。由于采用嘯天兄方法實現不了了,所以只能從上面的紅頭文件(即紅體字)尋找解決方法,雖然CTelephony::GetCurrentNetworkInfo在離線模式下失效,但是CTelephony::GetSubscriberId仍然可用,為此我們就可以通過直接分析IMSI來實現對運營商網絡的識別,至于MNC的信息,大家可以查詢http://en.wikipedia.org/wiki/Mobile_network_code,在國內的情況如下截圖:

既然知道了如上信息,我們就可以簡單的對IMSI號進行分析了,小可對嘯天兄的代碼進行簡單修改,當然該代碼也是使用CTelephony,只能使用在EKA2平臺上,EKA1可以采用RMobilePhone::GetSubscriberId的方法來獲取IMSI,在這里也就不做展開了,具體代碼如下:

頭文件

/*

 * TelephonyAO.h

 *

 *  Created on: 2010-4-22

 *      Author: frank

 */

 

#ifndef TELEPHONYAO_H_

#define TELEPHONYAO_H_

 

#include <e32base.h>

#include <Etel3rdParty.h>

 

typedef enum

{

       ENetWorkUnKnow,

       ENetWorkCM,

       ENetWorkUN,

       ENetWorkTC,

       ENetWorkTT,

}TNetWorkType;

 

class CTelephonyAO : public CActive

{

public:

       static CTelephonyAO* NewL();

       TNetWorkType GetNetWorkId();

 

public:

       ~CTelephonyAO();

 

protected:

       void DoCancel();

       void RunL();

 

private:

       CTelephonyAO();

       void ConstructL();

 

       void GetNetWorkInfo();

 

private:

       CActiveSchedulerWait*                iActiveSchedulerWait;

       CTelephony*                        pTelephony_;

       CTelephony::TSubscriberIdV1             iSubscribId;

       CTelephony::TSubscriberIdV1Pckg     iSubscriberIdPckg;

};

 

#endif /* TELEPHONYAO_H_ */

 

實現文件

/*

 * TelephonyAO.cpp

 *

 *  Created on: 2010-4-22

 *      Author: frank

 */

 

#include "TelephonyAO.h"

 

CTelephonyAO::CTelephonyAO() : CActive(EPriorityStandard), iSubscriberIdPckg(iSubscribId)

{

      

}

 

CTelephonyAO::~CTelephonyAO()

{

       delete pTelephony_;

       pTelephony_ = NULL;

       delete iActiveSchedulerWait;

       iActiveSchedulerWait = NULL;

}

 

void CTelephonyAO::ConstructL()

{

       pTelephony_ = CTelephony::NewL();

       iActiveSchedulerWait = new (ELeave)CActiveSchedulerWait;

       CActiveScheduler::Add(this);

}

 

CTelephonyAO* CTelephonyAO::NewL()

{

       CTelephonyAO* pSelf = new(ELeave) CTelephonyAO;

       CleanupStack::PushL(pSelf);

       pSelf->ConstructL();

       CleanupStack::Pop();

       return pSelf;

}

 

void CTelephonyAO::RunL()

{

 

       if (iActiveSchedulerWait->IsStarted())

       {

              iActiveSchedulerWait->AsyncStop();

       }

}

 

void CTelephonyAO::DoCancel()

{

       pTelephony_->CancelAsync(CTelephony::EGetSubscriberIdCancel);

       if (iActiveSchedulerWait->IsStarted())

       {

              iActiveSchedulerWait->AsyncStop();

       }

}

 

void CTelephonyAO::GetNetWorkInfo()

{

       Cancel();

       pTelephony_->GetSubscriberId(iStatus, iSubscriberIdPckg);

       SetActive();

       iActiveSchedulerWait->Start();

}

 

TNetWorkType CTelephonyAO::GetNetWorkId()

{

       GetNetWorkInfo();

       TNetWorkType vNetWorkType = ENetWorkUnKnow;

       if(iSubscribId.iSubscriberId.Length() < 15)

       {

              vNetWorkType = ENetWorkUnKnow;

       }

       else

       {

              TBuf<6> vHeader;

              vHeader.Copy(iSubscribId.iSubscriberId.Left(5));

              TBuf<3> vPtrTemp;

              vPtrTemp.Copy(vHeader.Right(2));

              TInt vNetWorkId = 0;

              TLex vLex(vPtrTemp);

              vLex.Val(vNetWorkId);

              if((vNetWorkId == 1) ||(vNetWorkId == 6))

              {

                     vNetWorkType = ENetWorkUN;

              }

              else if((vNetWorkId == 0) ||(vNetWorkId == 2))

              {

                     vNetWorkType = ENetWorkCM;

              }

              else if((vNetWorkId == 3) ||(vNetWorkId == 5))

              {

                     vNetWorkType = ENetWorkTC;

              }

              else if(vNetWorkId == 20)

              {

                     vNetWorkType = ENetWorkTT;

              }

              else

              {

                     vNetWorkType = ENetWorkUnKnow;

              }

       }

       return vNetWorkType;

}

至于如何調用,就可以通過如下簡單獲取了,不用再自己去比較了。

       CTelephonyAO* pTelephony = CTelephonyAO::NewL();

       CleanupStack::PushL(pTelephony);

       TNetWorkType vNetWorkType = pTelephony->GetNetWorkId();

       CleanupStack::PopAndDestroy(pTelephony);

好了,暫時小結如下吧,感謝嘯天兄前人植樹。

posted on 2010-04-22 19:13 frank.sunny 閱讀(2214) 評論(3)  編輯 收藏 引用 所屬分類: C/C++學習和實踐symbian 開發

FeedBack:
# re: 關于Symbian識別移動、聯通和其它運營商網絡的方法
2010-04-23 13:05 | 99書城
空間看見米那是美女的  回復  更多評論
  
# re: 關于Symbian識別移動、聯通和其它運營商網絡的方法
2010-04-24 09:13 | 羅萊家紡官方網站
是的免費的南方  回復  更多評論
  
# re: 關于Symbian識別移動、聯通和其它運營商網絡的方法
2011-08-09 15:22 | wojj
感謝你的分享!  回復  更多評論
  

常用鏈接

留言簿(13)

隨筆分類

個人其它博客

基礎知識鏈接

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产精品日韩| 国产欧美日韩综合一区在线观看 | 亚洲专区欧美专区| 欧美在线黄色| 黄色av一区| 欧美亚洲第一页| 欧美精品久久99| 久久综合伊人77777麻豆| 欧美va亚洲va日韩∨a综合色| 亚洲一区二区三区在线看| 亚洲一区二区三区久久| 欧美在线国产| 免费欧美视频| 日韩天天综合| 久久青草欧美一区二区三区| 欧美成人精品一区二区| 国产精品一区毛片| 一区二区日韩伦理片| 久久国产天堂福利天堂| 欧美国产精品v| 久久精品一区二区| 国产精品视频99| 99视频一区| 欧美日韩999| 亚洲高清在线播放| 欧美自拍偷拍午夜视频| 亚洲免费观看高清完整版在线观看| 亚洲一区二区三区在线| 午夜精品一区二区三区电影天堂| 老巨人导航500精品| 亚洲影院色在线观看免费| 欧美日韩免费一区| 一本色道久久88综合亚洲精品ⅰ| 久久综合久久久久88| 亚洲一区二区三区四区在线观看 | 亚洲欧美大片| 亚洲精品在线免费观看视频| 欧美不卡三区| 日韩视频中文| 日韩一级在线观看| 国产精品第2页| 久久av免费一区| 久久福利精品| 日韩西西人体444www| 亚洲蜜桃精久久久久久久| 欧美日韩国产美| 久久黄色影院| 免费观看日韩av| 午夜精品电影| 久久久99精品免费观看不卡| 在线成人av.com| 亚洲精品中文字幕在线观看| 欧美天天视频| 欧美成人一品| 国产精品国产馆在线真实露脸| 久久都是精品| 欧美精品一区二区蜜臀亚洲| 欧美一区二区精美| 免费在线成人av| 激情小说另类小说亚洲欧美| 樱花yy私人影院亚洲| 亚洲黄色免费| 欧美久久久久久久久| 久久成人精品视频| 欧美日韩国产片| 欧美国产日本韩| 好吊日精品视频| 亚洲欧美视频一区| 亚洲欧美另类久久久精品2019| 蜜桃av一区二区| 欧美激情精品久久久久久免费印度| 国产精品欧美日韩久久| 正在播放亚洲一区| 亚洲免费在线观看| 国产乱码精品1区2区3区| 亚洲一级网站| 久久亚洲综合| 亚洲欧洲日产国码二区| 欧美成人一区二区三区| 亚洲日本成人| 午夜精品久久久久久久99热浪潮| 欧美成人精品| 日韩午夜精品| 久久综合网hezyo| 一区二区精品在线| 国产精品www.| 久久精品人人做人人爽电影蜜月| 欧美成人免费视频| 亚洲视频www| 永久555www成人免费| 欧美猛交免费看| 午夜亚洲性色福利视频| 男人的天堂亚洲在线| 亚洲资源av| 一本久道久久久| 亚洲国产精品成人| 国产日韩欧美一区| 亚洲国产精品精华液2区45| 亚洲一区二区在线| 精品99一区二区| 国产欧美日韩综合一区在线观看| 欧美暴力喷水在线| 久久夜色精品国产| 久久久女女女女999久久| 亚洲视频免费在线观看| 99国产精品久久久久久久久久| 欧美高清视频在线观看| 美女脱光内衣内裤视频久久网站| 久久久久久久综合| 久久综合激情| 欧美国产极速在线| 亚洲国产精品尤物yw在线观看| 久久精品国产91精品亚洲| 欧美在线观看视频在线 | 国产精品草草| 国产精品分类| 国产精品久久久一区二区| 国产精品久久久久久久久| 欧美日韩亚洲一区二区三区| 国产精品久久久| 国产欧美一级| 亚洲国产高清一区二区三区| 激情自拍一区| av成人免费观看| 久久av一区二区三区| 裸体一区二区| 欧美国产激情| 亚洲一区二区在线| 久久九九国产精品| 欧美日韩一区二区三区四区五区| 国产精品成人一区二区三区吃奶| 国产精品福利在线观看| 伊人成人开心激情综合网| 一区二区福利| 亚洲国产精品久久久久婷婷884 | 亚洲手机视频| 欧美成人中文字幕在线| 欧美亚洲在线观看| 欧美在线黄色| 欧美日韩精品一区| 国产综合色一区二区三区| 亚洲精品一区二区三| 午夜激情亚洲| 亚洲美女精品久久| 久久av在线| 国产午夜精品美女毛片视频| 亚洲日本成人在线观看| 久久免费视频观看| 亚洲视频视频在线| 欧美三日本三级少妇三2023| 亚洲福利一区| 欧美国产丝袜视频| 免费久久99精品国产| 国产一区二区三区精品欧美日韩一区二区三区| 一区二区三区在线观看国产| 欧美一区观看| 欧美一级专区| 国产一区二区精品久久| 性欧美1819sex性高清| 99国内精品久久久久久久软件| 免费日韩成人| 一本久久知道综合久久| 日韩视频免费观看高清完整版| 欧美国产激情| 午夜精品国产更新| 久久精品一区二区三区不卡牛牛| 国产亚洲精品久| 欧美sm视频| 国产精品久久久久久久久久久久久久| 日韩一二三区视频| 亚洲免费视频在线观看| 国产亚洲精品久久久久久| 蜜臀va亚洲va欧美va天堂| 欧美区二区三区| 久久久久久9999| 欧美日韩国产综合在线| 久久久精品国产免大香伊 | 亚洲国产精品一区二区第四页av | 午夜精品免费| 国模吧视频一区| 亚洲一区二区三区视频| 亚洲另类自拍| 久久激情网站| 欧美在线观看日本一区| 欧美日本不卡高清| 亚洲国产合集| 亚洲高清影视| 久久综合狠狠| 欧美丰满少妇xxxbbb| 国产精品一区二区三区观看| 亚洲精选一区二区| 亚洲理论在线观看| 欧美激情视频一区二区三区免费| 欧美在线亚洲| 国内精品模特av私拍在线观看| 欧美一区亚洲| 久久阴道视频| 亚洲国产一区二区精品专区| 久久久一本精品99久久精品66| 久久精品青青大伊人av|