This page was last modified 17:19, 16 February 2008.
Получение параметров сети в Symbian 3-й редакции - синхронный метод
From Forum Nokia Wiki
Перевод с английского, оригинальная статья находится здесь.
Этот пример демонстрирует получение следующих параметров: идентификационные номера соты, сети сотовой связи и страны, название сети сотовой связи.
Contents |
NetworkApp.h
#include <e32base.h> #include <Etel3rdParty.h> class CNetworkApp : public CActive { private: void ConstructL(); CTelephony* iTelephony; CTelephony::TNetworkInfoV1 iNetworkInfoV1; CTelephony::TNetworkInfoV1Pckg iNetworkInfoV1Pckg; public: CNetworkApp( TUint& CellId, TDes& NetworkId, TDes& CountryId, TDes& LongName); static void GetNetworkParameters( TUint& CellId, TDes& NetworkId, TDes& CountryId, TDes& LongName); ~CNetworkApp(); TUint& iCellID; TDes& iNetworkID; TDes& iCountryCODE; TDes& iLongNAME; private: /* Далее следуют виртуальные методы класса CActive, которые ДОЛЖНЫ быть реализованы всеми активными объектами */ void RunL(); void DoCancel(); };
NetworkApp.cpp
#include "NetworkApp.h" void CNetworkApp::GetNetworkParameters( TUint& aCellID, TDes& aNetworkID, TDes& aCountryCODE, TDes& aLongName) { CNetworkApp* self= new(ELeave) CNetworkApp( aCellID, aNetworkID, aCountryCODE, aLongName); CleanupStack::PushL(self); self->ConstructL(); CleanupStack::PopAndDestroy(self); } void CNetworkApp::ConstructL() { iTelephony = CTelephony::NewL(); CActiveScheduler::Add(this); iTelephony->GetCurrentNetworkInfo(iStatus, iNetworkInfoV1Pckg); SetActive(); CActiveScheduler::Start(); } CNetworkApp::CNetworkApp( TUint& aCellID,TDes& aNetworkID,TDes& aCountryCODE,TDes& aLongName): CActive(EPriorityStandard), iNetworkInfoV1Pckg(iNetworkInfoV1), iCellID(aCellID), iNetworkID(aNetworkID), iCountryCODE(aCountryCODE), iLongNAME(aLongName) { //конструктор по-умолчанию } void CNetworkApp::RunL() { if(iStatus==KErrNone) { iCellID = iNetworkInfoV1.iCellId; iNetworkID = iNetworkInfoV1.iNetworkId; iCountryCODE = iNetworkInfoV1.iCountryCode; iLongNAME= iNetworkInfoV1.iLongName; CActiveScheduler::Stop(); } } void CNetworkApp::DoCancel() { iTelephony->CancelAsync(CTelephony::EGetCurrentNetworkInfoCancel); } CNetworkApp::~CNetworkApp() { if(iTelephony) { iTelephony->Cancel(); delete iTelephony; iTelephony = NULL; } }
Использование
Для использования этого кода, выполните следующие шаги:
- Создайте простое приложение "Hello World" с помощью шаблонов.
- Поместите файл NetworkApp.h в папку inc проекта.
- Поместите файл NetworkApp.cpp в папку src проекта.
- Откройте mmp файл проекта и добавьте строку SOURCE NetworkApp.cpp.
- Откройте mmp файл проекта и добавьте строку LIBRARY etel3rdparty.lib.
- Теперь добавьте следующий заголовочный файл в ваш класс (например, в файл: CYrAppUi.h): #include "NetworkApp.h".
- Откройте файл mmp и добавьте сроку CAPABILITY ReadDeviceData.
Теперь вы можете вызывать статическую функцию из обработчика комманд вашего приложения. Например:
case EReadNetworkCommand1: { TUint CellId; TBuf<30> NetworkId; TBuf<30> CountryId; TBuf<30> OperatorLongName; CNetworkApp::GetNetworkParameters( CellId, NetworkId, CountryId, OperatorLongName ); TBuf<160> iDisplayString; iDisplayString.Format( _L( "CellId-%d\nNetworkID-%S\nCountryID-%S\nNETWORK-%S" ), CellId, &NetworkId, &CountryId, &OperatorLongName ); CAknInformationNote* informationNote = new ( ELeave ) CAknInformationNote; informationNote->ExecuteLD(iDisplayString); }
Для того, чтобы установить ваше приложение на телефон, вы должны подписать полученный .Sis файл с помощью сертификата разработчика.
Вы можете скачать демонстрационный проект, созданный в MS 2003 IDE с помощью Carbide.vs здесь
Здесь вы найдете библиотеку со схожей функциональностью для SDK Symbian S60 2-й редакции.
Внутренние ссылки
Ссылки
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| hello world in symbian | sebflash | General Symbian C++ | 1 | 2004-10-21 07:31 |
| Problems with Programming in C++ | soul87 | Carbide.c++ and CodeWarrior Tools | 12 | 2008-05-07 16:15 |
| Software engineering | apim | General Symbian C++ | 7 | 2007-11-25 17:54 |
| Is there any ADT in Symbian? | eqing2008 | General Symbian C++ | 7 | 2007-11-15 15:17 |
| MMS on Symbian | MMSbeginn | General Messaging | 1 | 2003-02-18 08:59 |
