获取屏幕大小、手机型号获取屏幕大小、手机型号
获取屏幕大小
CWsScreenDevice* ws = CEikonEnv::Static()->ScreenDevice(); TSize checkSize = ws->SizeInPixels();
CEikonEnv::Static()->ScreenDevice()->SizeInPixels()
class SysUtil
最近工作需要获取手机型号
在网上找到了资料. 谢谢作者了.
头文件:
#include
库:
hal.lib
代码:
void GetPhon...
获取屏幕大小、手机型号
获取屏幕大小
CWsScreenDevice* ws = CEikonEnv::Static()->ScreenDevice(); TSize checkSize = ws->SizeInPixels();
CEikonEnv::Static()->ScreenDevice()->SizeInPixels()
class SysUtil
最近工作需要获取手机型号
在网上找到了资料. 谢谢作者了.
头文件:
#include
库:
hal.lib
代码:
void GetPhoneModeL(TDes& aModeBuf )
{
TInt machineUid=0;
HAL::Get (HALData::EMachineUid, machineUid );
switch (machineUid )
{
case 0x10200F9B:
{
aModeBuf = _L("Nokia 6682"); break;
}
case 0x10200F9C:
{
aModeBuf = _L("Nokia 6681"); break;
}
case 0x10200F99:
{
aModeBuf = _L("Nokia 6680"); break;
}
case 0x101FBB55:
{
aModeBuf = _L("Nokia 6630 "); break;
}
case 0x101FB3F3:
{
aModeBuf = _L("Nokia 7610"); break;
}
case 0x101F3EE3:
{
aModeBuf = _L("Nokia 6620"); break;
}
case 0x101FB3F4:
{
aModeBuf = _L("Nokia 6260"); break;
}
case 0x10200F97:
{
aModeBuf = _L("Nokia 3230"); break;
}
case 0x101FB3DD:
{
//Nokia 6600
aModeBuf = _L("Nokia 6600"); break;
}
}
}
不过这个最好是直接返回machineUid ,让服务器做 匹配.因为客户端写死了以后有新型号就不号匹配了.
TInt machineId;
HAL::Get(HALData::EMachineUid, machineId);
Knowing machineId you can determin OS version:
enum TMachineID
{
// S60 1st Edition (0.9) Symbian v.6.1 ENokia7650 = 0x101F4FC3
,ENokiaNGage = 0x101F8C19
,ENokiaNGageQD = 0x101FB2B1
// S60 1st Edition, FP1 (1.2) Symbian v.6.1
,ENokia3650 = 0x101F466A
,ENokia3660 = ENokia3650
,ESendoX = 0X101FA031
,ESiemensSX1 = 0x101F9071
// S60 2nd Edition Symbian v.7.0s ,ENokia6600 = 0x101FB3DD
// S60 2nd Edition, FP1 Symbian v.7.0s ,ENokia3230 = 0x10200F97
,ENokia6260 = 0x101FB3F4
,ENokia6620 = 0x101F3EE3
,ENokia6670 = 0x101FB3F3
,ENokia7610 = 0x101FB3F3
// S60 2nd Edition, FP2 Symbian v.8.0a ,ENokia6630 = 0x101FBB55
,ENokia6680 = 0x10200f99
,ENokia6681 = 0x10200F9C
,ENokia6682 = 0x10200F9B
// S60 2nd Edition, FP3 Symbian v.8.1a ,ENokiaN70 = 0x10200F9A
,ENokiaN90 = 0x10200F98
// S60 3rd Edition Symbian v.9.1 ,ENokia3250 = 0x200005F8
,ENokiaE60 = 0x20001856
,ENokiaE61 = 0x20001858
,ENokiaE70 = 0x20001857
,ENokiaN71 = 0x200005FF
,ENokiaN73 = 0x200005FB
,ENokiaN80 = 0x200005F9
,ENokiaN91 = 0x200005FC
,ENokiaN92 = 0x200005FA
};
因此可通过以下代码获取手机型号:
void GetPhoneModeL()
{
TInt machineUid = 0;
HAL::Get(HALData::EMachineUid, machineUid);
switch (machineUid)
{
case 0x101F9071:
{
//Siemens SX1
break;
}
case 0x101F466A:
{
//Nokia 3650
break;
}
case 0x101F4FC3:
{
//Nokia 7650
break;
}
case 0x101FB3DD:
{
//Nokia 6600
break;
}
// ......
}
}
所有的Series60设备都拥有一个由制造商分配的唯一符-机器UID,因此可以通过这一UID信息来获取手机型号。
常见的S60机型及其机器UID:
S60 1st Edition (0.9): Nokia 7650 0x101F4FC3
S60 1st Edition, FP1 (1.2): Nokia 3650 0x101F466A Nokia 3660 0x101F466A Sendo-X 0x101FA031 Siemens SX-1 0x101F9071
S60 2nd Edition:
Nokia 6600 0x101FB3DD
S60 2nd Edition, FP1: Nokia 3230 0x10200F97 Nokia 6260 0x101FB3F4 Nokia 6620 0x101F3EE3 Nokia 6670 0x101FB3F3 Nokia 7610 0x101FB3F3
S60 2nd Edition, FP2: Nokia 6630 0x101FBB55 Nokia 6680 0x10200F99 Nokia 6681 0x10200F9C Nokia 6682 0x10200F9B
S60 2nd Edition, FP3: Nokia N70 0x10200F9A Nokia N90 0x10200F98
other
Nokia N-Gage? 0x101F8C19 Nokia N-Gage? QD 0x101FB2B1
手机型号能从如下文件中读取出来:
z: esourceversionsmodel.txt 型号名称是如下格式:
"Nokia 3250"
相关代码:
_LIT(KFilename,"Z:\resource\versions\model.txt"); RFile file;
User::LeaveIfError(file.Open(CCoeEnv::Static()->FsSession(),KFilename,EFileRead));
CleanupClosePushL(file);
TFileText text;
text.Set(file);
TBuf16<128> szModelName;
User::LeaveIfError(text.Read(szModelName)); CleanupStack::PopAndDestroy(&file);
CAknInformationNote* note = new (ELeave) CAknInformationNote(ETrue);
note->ExecuteLD(szModelName);
Common products UIDs
Common products UIDs
6 Aug 2003 - 16:55 Keywords :
, UID
, Compilation
Here is a list of machine and platform UIDs that can be used to uniquely identify a phone model or its family: : S60
Product Machine/Platform Platform Device UID UID
Series 60 v0.9 0x101F6F88
Nokia 7650 0x101F6F87 0x101F4FC3
Series 60 v1.2 0x101F8202
Nokia 3650 0x101F7962 0x101F466A
Nokia 3660 0x101F7962 0x101F466A
Nokia N-Gage 0x101F8A64 0x101F8C19
Nokia N-Gage QD 0x101FB2B1 0x101FB2B1
Sendo X 0x101FA031 0x101FA031
Siemens SX1 0x101F9071 0x101F9071
0x101F7960 Series 60 v2.0
Nokia 6600 0x101F7963 0x101FB3DD
Panasonic X700 0x101FF525 0x101FF525
0x101F9115 S60 2nd Edition FP1
Nokia 3230 0x10200F97 0x10200f97
Nokia 6260 0x101FB3F4 0x101FB3F4
Nokia 6620 0x1020216B 0x101F3EE3
Nokia 6670 0x101FD5DC 0x101FB3F3
Nokia 7610 0x101FD5DB 0x101FB3F3
S60 2nd Edition FP2 0x10200BAB
Nokia 6630 0x101F7964 0x101FBB55
Nokia 6680 0x102078D1 0x10200F99
Nokia 6681 0x102078D0 0x10200F9C
Nokia 6682 0x102078CF 0x10200F9B
S60 2nd Edition FP3 0x102032BD
Nokia N70 0x10200F9A 0x10200F9A
Nokia N72 0x10200F9A 0x10200F9A
Nokia N90 0x10200F98 0x10200F98
S60 3rd Edition 0x101F7961
Nokia 3250 0x200005F8 0x200005F8
Nokia 5500 Sport 0x20000602 0x20000602
Nokia E50 0x20002495 0x20002495
Nokia E60 0x20001856 0x20001856
Nokia E61 0x20001858 0x20001858
Nokia E61i 0x20002D7F 0x20002D7F
Nokia E62 0x20001859 0x20001859
Nokia E65 0x20000604 0x20000604
Nokia E70 0x20001857 0x20001857
Nokia N71 0x200005FF 0x200005FF
Nokia N73 0x200005FB 0x200005FB
Nokia N75 0x200005FE 0x200005FE
Nokia N77 0x20000601 0x20000601
Nokia N80 0x200005F9 0x200005F9
Nokia N91 0x200005FC 0x200005FC
Nokia N92 0x200005FA 0x200005FA
Nokia N93 0x20000600 0x20000600
Nokia N93i 0x20000605 0x20000605
S60 3rd Edition, FP1 0x102032BE
LG Joy (KS10) 0x101FF809 0x101FF809
Nokia 5700 0x20002D7C 0x20002D7C XpressMusic
Nokia 6110 0x20002D7B 0x20002D7B Navigator
Nokia 6120 0x20002D7E 0x20002D7E Classic
Nokia 6290 0x20000606 0x20000606
Nokia E51 0x20002498 0x20002498
Nokia E71 0x2000249b 0x2000249b
Nokia E90 0x20002496 0x20002496
Nokia N76 0x2000060A 0x2000060A
Nokia N81 0x20002D83 0x20002D83 and N81 8GB
Nokia N82 0x20002D85 0x20002D85
Nokia N95 0x2000060B 0x2000060B
Nokia N95 8GB 0x20002D84 0x20002D84
Samsung G810 0x2000C51D
Samsung I450 0x2000A677
Samsung I520 0x20003ABD
Samsung I550 0x2000A678
Samsung I560 0x2000C51C S60 3rd Edition, FP2 (Symbian 0x102752AE OS 9.3)
Nokia 5320 0x2000DA5A 0x2000DA5A XpressMusic
Nokia 6210 0x2000DA54 0x2000DA54 Navigator
Nokia 6220 0x2000DA52 0x2000DA52
Classic
Nokia 6650 0x2000DA57 0x2000DA57
Nokia N78 0x20002D81 0x20002D81
Nokia N79 0x2000DA64 0x2000DA64
Nokia N85 0x20002D86 0x20002D86
Nokia N96 0x20002D82 0x20002D82
Samsung I8510 0x2000C51E (Innov8)
Samsung GT-I7110 0x2000C51F
S60 5th Edition 0x1028315F
Nokia 5800 0x2000DA56 0x2000DA56 XpressMusic
Nokia N97 0x20014DDD 0x20014DDD UIQ
Platform Device Product UID Machine/Platform UID
0x101F617B 0x101F617B UIQ v2.0
SonyEricsson P80x 0x101F80BE 0x101F408B
0x101F61CE 0x101F61CE UIQ v2.1
SonyEricsson P90x 0x101FBB35 0x101FB2AE
SonyEricsson P910 0x101FBB35 0x10200AC6
0x101F6300 0x101F6300 UIQ v3.0
SonyEricsson G700 0x2000CC70
SonyEricsson G900 0x2000CC6C
SonyEricsson M600i 0x10274BF9
SonyEricsson P1i 0x20002E69
SonyEricsson P990i 0x1020E285
SonyEricsson W950i 0x10274BFA
SonyEricsson W960i 0x20002E6A
0x101F63DF 0x101F63DF UIQ v3.1
Motorola RIZR Z8 0x1027400d 0x1027400d
Motorola RIZR Z10
Other/Older Platforms
Series 80 v2.0 0x101F8ED2
Nokia 9300 0x101F8ED1
Nokia 9500 0x101F8DDB
Series 90
Nokia 7710 0x101FBE05
Nokia 7710 0x101FBE0A (Chinese Edition)
Development platforms
Series5mx 0x1000118a
Brutus board 0x10005f60
Cogent board 0x10005f61
Win32Emulator 0x10005f62
WinC 0x10005f63
CirrusLogic 7211 board 0x1000604f How to use the UIDs
Platform UID
These UIDs shall be used in your PKG file to specify on which platform your application will work. As an example, an
application running on Series 60 v0.9 platform will have the following line in its PKG:
(0x101F6F88), 0, 0, 0, {"Series60ProductID"}
Starting with S60 3rd Edition, the syntax is now:
[0x101F7961], 0, 0, 0, {"S60ProductID"}
Or for UIQ 3:
(0x101F6300), 3, 0, 0, {"UIQ30ProductID"}
(0x101F63DF), 3, 1, 0, {"UIQ31ProductID"}
Product UID
The product UID can be use instead of the platform UID if oyr application is specific to a single phone and not the
whole platform family. Exemple for a Nokia 6630 specific application: (0x101F7964), 0, 0, 0, {"Nokia6630ProductID"}
With S60 3rd Edition and later, you can use several phones target. Ex for N71 and N80:
[0x10275218], 0, 0, 0, {"Nokia N71 ID"}
[0x200005F9], 0, 0, 0, {"Nokia N80 ID"}
Machine UID
#include // also link to hal.lib
TInt mUid = 0;
HAL::Get(HALData::EMachineUid, mUid);
如何获取厂商名称、手机型号以及串号(IMEI) From Forum Nokia Wiki
开发伙伴平台:
S60 3rd Edition, S60 3rd Edition FP1
详细描述
我们无需任何能力capability只要通过如下即可获取手机型号及唯一识别码: ephony::GetPhoneId
下面的示例代码演示了如何通过一个活动对象获得IMEI:
TRequestStatus iStatus;
CTelephony::TPhoneIdV1 iPhoneId;
...
CTelephony telephony = CTelephony::NewL();
CTelephony::TPhoneIdV1Pckg phoneInfo( iPhoneId );
telephony->GetPhoneId( iStatus, phoneInfo );
SetActive();
...
// In your RunL function...
TPtrC imeiCode( iPhoneId.iSerialNumber );
...
查看文档中有关CTelephony类所需的能力,以及相关方法描述。
S60第三版MR SDK和S60第三版FP1 SDK还包含了一个如何使用第三方ETEL电话API的示例(S60Ex\IsvTelInfoApp)
Reading IMSI in 3rd edition -Synchronously
From Forum Nokia Wiki
IMSI stands for "International Mobile Subscriber Identity".
IMSIApp.h
#include
#include
class CIMSIApp : public CActive
{
private:
void ConstructL();
CTelephony* iTelephony;
CTelephony::TSubscriberIdV1 iSubscriberIdV1;
CTelephony::TSubscriberIdV1Pckg iSubscriberIdV1Pckg;
public:
CIMSIApp(TDes& aIMSI);
static void GetIMSI(TDes& aIMSI);
TDes& IMSI;
private:
/*
These are the pure virtual methods from CActive that
MUST be implemented by all active objects
*/
void RunL();
void DoCancel();
};
IMSIApp.cpp
#include "IMSIApp.h"
void CIMSIApp::GetIMSI(TDes& aIMSI)
{
CIMSIApp* self= new (ELeave) CIMSIApp(aIMSI);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::PopAndDestroy(self);
}
void CIMSIApp::ConstructL()
{
iTelephony = CTelephony::NewL();
CActiveScheduler::Add(this);
iTelephony->GetSubscriberId(iStatus,iSubscriberIdV1Pckg);
SetActive();
CActiveScheduler::Start();
}
CIMSIApp:: CIMSIApp(TDes& imsi): CActive(EPriorityStandard),IMSI(imsi), iSubscriberIdV1Pckg(iSubscriberIdV1)
{
//default constructor
}
void CIMSIApp::RunL()
{
if(iStatus==KErrNone)
{
IMSI = iSubscriberIdV1.iSubscriberId;
CActiveScheduler::Stop();
}
}
void CIMSIApp::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel); }
Now do the following steps:
1) Create a sample "Hello World" type application. 2) Put IMSIApp.h file in your application's "inc" folder. 3) Put IMSIApp.cpp file in your application's "src" folder. 4) Open .mmp file and add entry SOURCE IMSIApp.cpp.
5) Open .mmp file and add entry LIBRARY etel3rdparty.lib.
7) Now you need to include following header in your class to read IMSI:
#include "IMSIApp.h". Let's say in for e.g.: "CYrAppUi.h"
8) You can then call the static function from any of your Commands.
For ex: in your CYrAppUi.h you need to include "IMSIApp.h"
And Call it like:
case EReadIMSICommand1:
{
TBuf<25> iIMSI;
CIMSIApp::GetIMSI(iIMSI);
CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
informationNote->ExecuteLD(iIMSI);
}
9) Open .mmp file and add entry CAPABILITY ReadDeviceData.
10) You need to sign resulted .Sis file with your developer certificate to get it installed on your phone.
You can find a working application which can be built with Carbide.c++
Here it goes: [Read IMSI]
See Also
IMSI on Wikipedia
Online tool to analyze IMSI
DevInfo - Get the IMEI, IMSI, CellId etc., synchronously on 3.x devices.
Reading IMSI in 3rd Edition
From Forum Nokia Wiki
(Redirected from Reading IMSI in 3rd edition)
Reviewer Approved
- ID Creation date
S60 3rd Edition E61i Platform Tested on devices
Symbian C++ Category Subcategory
Keywords (APIs, classes, methods, functions): CTelephony::GetSubscriberId()
CImsiReader example illustrates how to read IMSI (SIM card's identity number, which has nearly nothing to do with the MSISDN that is the phone number used for
calling) in 3rd Edition Symbian devices. Note that this code will most likely not work in the emulator, thus you should only use it in real devices.
Link against:
etel3rdparty.lib
Capability require:
CAPABILITY ReadDeviceData
IMSI_Getter.cpp
#include "Imsi_Getter.h" //LP: added #include for Imsi_Getter.h header file
CImsiReader* CImsiReader::NewL(MImsiObserver* aObserver)
{
CImsiReader* self = NewLC(aObserver);
CleanupStack::Pop(self);
return self;
}
CImsiReader* CImsiReader::NewLC(MImsiObserver* aObserver)
{
CImsiReader* self = new (ELeave) CImsiReader(aObserver);
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CImsiReader::CImsiReader(MImsiObserver* aObserver)
:CActive(0),iObserver(aObserver),iImsiV1Pkg(iImsiV1)
{
}
CImsiReader::~CImsiReader()
{
Cancel();
delete iTelephony;
}
void CImsiReader::ConstructL(void)
{
CActiveScheduler::Add(this);
iTelephony = CTelephony::NewL();
iTelephony->GetSubscriberId(iStatus,iImsiV1Pkg);
SetActive();
}
void CImsiReader::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel); }
void CImsiReader::RunL()
{
//LP: added ";" and replaced iTelephony with iObserver
iObserver->GotIMSIL(iImsiV1.iSubscriberId,iStatus.Int()); }
IMSI_Getter.h
#include
class MImsiObserver
{
public: // New methods
virtual void GotIMSIL(const TDesC& aIMSI, TInt aError) = 0;
};
class CImsiReader : public CActive
{
public:
static CImsiReader* NewL(MImsiObserver* aObserver);
static CImsiReader* NewLC(MImsiObserver* aObserver);
~CImsiReader();
protected:
void DoCancel();
void RunL();
private:
CImsiReader(MImsiObserver* aObserver);
void ConstructL(void);
private:
MImsiObserver* iObserver;
CTelephony* iTelephony;
CTelephony::TSubscriberIdV1 iImsiV1;
CTelephony::TSubscriberIdV1Pckg iImsiV1Pkg;
};
NB: Note for console applications In a Console application you have to create a Active scheduler (to run active objects) before calling the code above or the code above will not work e.g.
LOCAL_C void ApplicationL()
{
CIMSIApp::GetIMSI(iIMSI);
}
LOCAL_C void Main()
{
// Create active scheduler (to run active objects)
CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
CleanupStack::PushL(scheduler);
CActiveScheduler::Install(scheduler);
ApplicationL();
CleanupStack::PopAndDestroy(scheduler);
}
Credits go to sumeet_netsmartz Example Code
Example Code 1
Example code 2
See Also
Reading IMSI in 3rd edition -Synchronously
IMSI on Wikipedia
Online tool to analyze IMSI
DevInfo - Get the IMEI, IMSI, CellId etc., synchronously on 3.x devices.
本文档为【获取屏幕大小、手机型号】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。