为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

获取屏幕大小、手机型号

2018-01-31 22页 doc 54KB 26阅读

用户头像

is_421808

暂无简介

举报
获取屏幕大小、手机型号获取屏幕大小、手机型号 获取屏幕大小 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,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索