IMEI && IMSI && APN设置

来源:互联网 发布:怎么找淘宝客服介入 编辑:程序博客网 时间:2024/05/21 18:39

(1)IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。我们写的imei号是写在手机里面的,但是imei号是基站识别手机的一个标识,和sim卡是有关联的但本质是独立的。

(2)2004年以前的标准中,IMEI共15位(取值必须是0~9的数字),依次分别是6位TAC、2位FAC、6位SNR、1位CD校验位。2004年以后的标准中删去了最后的1位CD校验位,新加入了2位SVN(software version number),故称IMEISV,共16位(取值仍必须是0~9的数字)。
         网络对于IMEI或者IMEISV的检查是非必须的,各运营商会按照自己的策略在通信的某个阶段检查手机的IMEI或者IMEISV,并可能做进一步的动作。可能检查IMEI或者IMEISV的阶段有:A,开机注册网络时;B,周期性位置更新时;C,进行接打电话、收发短信、上网等业务时;D,或者其他(根据运营商的策略决定)。网络检查的时候会指明检查IMEI还是IMEISV,如果是检查IMEI,则手机许上报前14位IMEI(1位CD校验位不上报),如果是检查IMEISV,则手机上报16位IMEISV。
(3)这个号码是存在手机NVRAM里面的,以前一直以为返回IMEI号是直接读存储器就行了,直到最近看android手机CODE,发现需要AT命令交互,如下:

void getIMEI(int sim, char *result) {..........    if(sim==1) strcpy(buf, "AT+EGMR=0,7\r\n");    else strcpy(buf, "AT+EGMR=0,10\r\n");    fd= open("/dev/ttyC0",O_RDWR);    write(fd,buf,strlen(buf));    usleep(200000);    read(fd,buf,1024);    close(fd);.............}

        
=============================================================================================================

        IMSI是国际移动用户识别码的简称(International Mobile Subscriber Identity),IMSI共有15位,其结构如下:MCC+MNC+MIN。MCC:Mobile Country Code,移动国家码,共3位,中国为460;MNC:Mobile NetworkCode,移动网络码,共2位,在中国,移动的代码为电00和02,联通的代码为01,电信的代码为03。所以合起来就是(Android手机中APN配置文件中的代码):中国移动:46000 46002;中国联通:46001;中国电信:46003。比如一个典型的IMSI号码为460030912121001。

======================================================================================================

         apn设定在CODE中的体现,有XML文件载入。一个例子如下:



参考原文:http://blog.sina.com.cn/s/blog_48e2ea3401013co5.html