首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Symbian英文资料 >> Network >> 正文
Retrieving the device IMEI code
作者:佚名    文章来源:不详    更新时间:2006-5-7 11:17:50

The IMEI, short for International Mobile Equipment Identity, is a unique number given to every single mobile phone [1]. It is not modifiable by the user and a written copy of it can typically found behind the battery. It can also be displayed on screen by entering the *#06# key sequence.

Depending on your mobile, this number can have two different formats (the old and the new format:
  aabbbb-cc-dddddd-e if your mobile has been manufactured before April 1st 2004.
  xxxxxxxx-dddddd-e if your mobile has been manufactured after this date.

The old IMEI format

The format aabbbb-cc-dddddd-e was in use until April 1st 2004. Its meaning is:
  aabbbb is the Type Approval Code (TAC). The first two digits (aa) represent the country code.

  The second group of numbers (cc) is the Final Assembly Code (FAC). This identifies the device manufacturer [2]:

01,02 = AEG   60 = Alcatel
07,40 = Motorola  61 = Ericsson
10,20 = Nokia  65 = AEG
30 = Ericsson  70 = Sagem
40,41,44 = Siemens  75 = Dancall
50 = Bosch  80 = Philips
51 = Sony, Siemens, Ericsson  85 = Panasonic

  dddddd represents the device serial number (SNR)

  the last single digit (e) is an check digit (usually set to 0).

The new IMEI format

The new format xxxxxxxx-dddddd-e is used since 1st April 2004. The FAC value has disappeared and the Type Approval Code has been be replaced by a Type Allocation Code (TAC in both cases):
  xxxxxxxx is a eight digit number: the Type Allocation Code.
  dddddd and e have the same meaning as in the old format.

The IMEISV format

You may have two extra digits at the end of the IMEI. IN this case, these two additional numbers reflects the software version number of your phone. You can check in ETSI specs 02.16 and 03.03 if you need to have more details.

Retrieving the IMEI code on a Symbian device

Here is a small function that let you retrieve the IMEI of a device (link against plpvariant.lib):


#include <plpvariant.h>

void DeviceUtils::GetImei(TDes& aImei)
{
#ifndef __WINS__
  // This only works on target machine
  TPlpVariantMachineId imei;
  PlpVariant::GetMachineIdL(imei);
  aImei.Copy(imei);
#else
  // Return a fake IMEI when working on emulator
  _LIT(KEmulatorImei, "000000000000000");
  aImei.Copy(KEmulatorImei);
#endif
}


[1] The IMEI identifies the phone itself, not its user nor his subscription. These are identified by the IMSI code. Practically, this means that:
  a user will change of IMEI but not of IMSI when he changes its phone, keeping the same subscription.
  a user will change of IMSI but keep the same IMEI when he changes his subscription, keeping the same phone

[2] This value is set to 00 for all mobiles manufactured from 1st January 2003

相关文章:
How to retrieve the phone IMEI code on UIQ3.0
Retrieving IMEI, IMSI, Network Info (Cell Id, Location Code) on 3rd Edition.
C++Programming Guidelines
C++ Inheritance
Tips & code samples for Sony Ericsson’s UIQ 3 based phones
My experiences making a Task Manager
Guidelines for Code Optimisation
Obtain IMEI number of your symbian phone from Your Go-DB application
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号