IMEI就是大家常说的机身码或者手机串号,全称是Internation Mobile Entity Identification,“国际移动设备识别码”,每一个移动设备都对应一个唯一的IMEI,IMEI一般为15位,也有厂家增位的,标准的 IMEI是4部分,TAC:6位数,是设备型号核准号码,说白了就是手机的型号,这个号码是由欧洲型号认证中心分配的。FAC:2位数,表示手机最后完成 装配时是在什么地方,或者说是手机产地的代号也可以。 SNR:6位数,这个是出厂序列号。SPN :1位数,是备用号码。不过现在欧洲型号认证中心好像已经把TAC和FAC给合并了在一起了。
做唯一标识的话,用手机的IMEI或者蓝牙的MAC地址都可以,在待机状态输入*#2820#可以查到蓝牙MAC地址,不过不是所有的机器都支持蓝牙,所以建议使用IMEI,在手机待机状态输入*#06#可以查到IMEI,
在J2ME 程序中,可以通过获得相应的系统属性的值来获得手机的IMEI数值。MOTO系列的手机可以通过System.getProperty("IMEI")方 法获得IMEI的值,SIEMENS系列的手机可以通过System.getProperty("com.siemens.IMEI")方法取值, NOKIA是最近才支持在J2ME中直接获得IMEI的,通过System.getProperty(“com.nokia.mid.imei”)方法取 值,而且想使用这个功能,你的J2ME程序必须经过数字签名。以上方法返回类型都是String。在涉及到具体开发时,建议还是参考厂家具体的开发文档。
另外关于IMEI还要提一句,IMEI是存储在手机的EEPROM里的,每一个移动设备都对应一个唯一的IMEI,感觉上有点像网卡的MAC地址,理论上 来讲IMEI应该是唯一的,不过我拿到的部分测试机的IMEI是全部为0,所以如果只用IMEI作为身份标识的话要注意这点,当然,如果只是自己做着玩或 者对这方面认证要求不高的话就无所谓了。