首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Symbian >

求获取CELL id解决思路

2012-12-16 
求获取CELL idNOKIA手机系列, 获得CELL ID ,求代码, 谢谢关注,有研究过的请发消息给我,谢谢[解决办法]寻SY

求获取CELL id
NOKIA手机系列, 获得CELL ID ,

求代码, 谢谢关注,

有研究过的请发消息给我,谢谢
[解决办法]
寻SYMABIN合作开发伙伴, 不过费用不很高,挣点小钱还可以。 有兴趣的发消息给我,谢谢
[解决办法]
Find Out Cell ID in 3rd Edition
http://wiki.forum.nokia.com/index.php/Find_Out_Cell_ID_in_3rd_Edition
[解决办法]
? 用SYMBIAN如何? 有没兴趣做这个? 谢谢答复
[解决办法]

引用:
Find Out Cell ID in 3rd Edition 
http://wiki.forum.nokia.com/index.php/Find_Out_Cell_ID_in_3rd_Edition

推荐
[解决办法]
// System includes
#include <badesca.h>
#include <e32std.h>
#include <eikenv.h>
#include <eikappui.h>
#include <eikapp.h>
#include "RlPlatforms.h"

#include <Etel3rdParty.h>

//User includes
#include "SystemManager.h"

CSystemManager* CSystemManager::NewL()
{
CSystemManager* self = new (ELeave) CSystemManager();
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(self);

return self;
}

CSystemManager::CSystemManager()
: CActive(EPriorityHigh)// HIGH priority
, iPhoneInfoType(EHandsetIMEI)
, iState(EStart)
, iTelephony(NULL)
, iIMEI(0)
, iIMSI(0)
, iCellId(0)
, iLocationAreaCode(0)
{
}

void CSystemManager::ConstructL()
{
iTelephony = CTelephony::NewL();
CActiveScheduler::Add(this); // Add to scheduler
}

CSystemManager::~CSystemManager()
{
Cancel(); // Cancel any request, if outstanding
// Delete instance variables if any
delete iTelephony;
}

void CSystemManager::DoCancel()
{
switch(iPhoneInfoType)
{
case EHandsetIMEI: 
iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
break;
case EHandsetIMSI:
iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
break;
default:
iTelephony->CancelAsync(CTelephony::EGetCurrentNetworkInfoCancel);
break;
}
}

void CSystemManager::StartL()
{
Cancel(); // Cancel any request, just to be sure
iState = EGetPhoneInfo;
switch(iPhoneInfoType)
{
case EHandsetIMEI:
{
CTelephony::TPhoneIdV1Pckg phoneIdPckg( iPhoneId );
iTelephony->GetPhoneId(iStatus, phoneIdPckg);
}
break;
case EHandsetIMSI:
{
CTelephony::TSubscriberIdV1Pckg subscriberIdPckg( iSubscriberId );
iTelephony->GetSubscriberId(iStatus, subscriberIdPckg);
}
break;
case EHandsetNetworkInfo:
{
CTelephony::TNetworkInfoV1Pckg networkInfoPckg( iNetworkInfo );
iTelephony->GetCurrentNetworkInfo(iStatus, networkInfoPckg);
}
break;        
}

SetActive(); // Tell scheduler a request is active
iActiveSchedulerWait.Start();
}


void CSystemManager::RunL()
{
iState = EDone;
if ( iActiveSchedulerWait.IsStarted() )
{
iActiveSchedulerWait.AsyncStop();
if(iStatus == KErrNone)
{
switch(iPhoneInfoType)
{
case EHandsetIMEI:
iIMEI.Append(iPhoneId.iSerialNumber );
break;
case EHandsetIMSI:
iIMSI.Append(iSubscriberId.iSubscriberId );
break;
case EHandsetNetworkInfo:
iCellId = iNetworkInfo.iCellId;
iLocationAreaCode = iNetworkInfo.iLocationAreaCode;
break;
}
}
else
{
// ***********Handle Error here ************
}
}
}

const TPtrC CSystemManager::GetIMEI()
{
iPhoneInfoType = EHandsetIMEI;
iIMEI.Zero();

StartL();
TPtrC ptr(iIMEI.Ptr());
return ptr;
}

const TPtrC CSystemManager::GetIMSI()
{
iPhoneInfoType = EHandsetIMSI;
iIMSI.Zero();

StartL();
TPtrC ptr(iIMSI.Ptr());
return ptr;
}

void CSystemManager::GetNetworkInfoL(TUint& aLocationCode, TUint& aCellId)
{
iPhoneInfoType = EHandsetNetworkInfo;
StartL();
aCellId = iCellId;
aLocationCode = iLocationAreaCode;

return;
}

[解决办法]
//LIBRARY  etel3rdparty.lib
// Capability  ReadDeviceData

#include<etel3rdparty.h>
#ifndef __NETWORKINFO_H__
#define __NETWORKINFO_H__
 
#include <etel3rdparty.h> // CTelephony
 
// Observer interface
class MNetworkInfoObserver
    {
    public:
        virtual void NetworkInfoRetrievedL(
            const CTelephony::TNetworkInfoV1& aNetworkInfo) = 0;
        virtual void HandleNetworkInfoError(TInt aError) = 0;
    };
 
// Active object to get network info
class CNetworkInfo : public CActive
    {
    public:
        static CNetworkInfo* NewL();
        ~CNetworkInfo();
 
        void GetNetworkInfoL(MNetworkInfoObserver* aObserver);
 
    protected:
        // from CActive
        void RunL();
        TInt RunError(TInt aError);
        void DoCancel();
 
    private:
        CNetworkInfo();
        void ConstructL();
 
    private:
        CTelephony* iTelephony;
        CTelephony::TNetworkInfoV1 iNwInfo;
        CTelephony::TNetworkInfoV1Pckg iNwInfoPckg;
        MNetworkInfoObserver* iObserver;
    };


 
#endif // __NETWORKINFO_H__

///////////////////////////////////////////////cpp
#include "NetworkInfo.h"
 
CNetworkInfo::CNetworkInfo()
    : CActive(EPriorityStandard),
      iNwInfoPckg(iNwInfo)
    {
    CActiveScheduler::Add(this);
    }
 
CNetworkInfo* CNetworkInfo::NewL()
    {
    CNetworkInfo* self = new (ELeave) CNetworkInfo;
    CleanupStack::PushL(self);
    self->ConstructL();
    CleanupStack::Pop();
    return self;
    }
 
void CNetworkInfo::ConstructL()
    {
    iTelephony = CTelephony::NewL();
    }
 
CNetworkInfo::~CNetworkInfo()
    {
    Cancel();
    delete iTelephony;
    }
 
// This function is used by our class' users to start getting network info.
void CNetworkInfo::GetNetworkInfoL(MNetworkInfoObserver* aObserver)
    {
    __ASSERT_ALWAYS(!IsActive(), User::Leave(KErrInUse));
    iObserver = aObserver;
 
    // Start async call to receive current network information
    iTelephony->GetCurrentNetworkInfo(iStatus, iNwInfoPckg);
    SetActive();
    }
 
void CNetworkInfo::DoCancel()
    {
    iTelephony->CancelAsync(CTelephony::EGetCurrentNetworkInfoCancel);
    }
 
void CNetworkInfo::RunL()
    {
    User::LeaveIfError(iStatus.Int());
    // Request completed successfully.
    // Now we can notify our observer.
    if(iObserver)
        {
        iObserver->NetworkInfoRetrievedL(iNwInfoPckg());
        }
    }
 
TInt CNetworkInfo::RunError(TInt aError)
    {
    // There was an error retrieving current network info.
    // Let's inform our observer about the error so that it can analyze it
    // and try to recover.
    if(iObserver)
        {
        iObserver->HandleNetworkInfoError(aError);
        }
 
    return KErrNone;
    }

[解决办法]
通过楼上的方法获取的值常常是0,不知道大家的情况如何

[解决办法]
我获取了也没有成功!
[解决办法]
你没加权限?

怎么测试的。。。
------解决方案--------------------


引用:
Find Out Cell ID in 3rd Edition
http://wiki.forum.nokia.com/index.php/Find_Out_Cell_ID_in_3rd_Edition

太高深了啊,这个高深的直接是深不见底啊还没见过这么高深的东西类

热点排行