zhandoushi的专栏

自在空间

IMEI && IMSI && APN设置

(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
阅读更多
个人分类: 数据通讯和网络
上一篇C语言解析文本的程序 && sscanf/sprintf
下一篇安卓Systemproperties的读写 && Android平台LOG输出规范 && Log写入文件 && 将异常(getStackTrace)转化成String
想对作者说点什么? 我来说一句

IMEIIMSI

看IMEI和IMSI

namelessml namelessml

2017-09-14 09:58:04

阅读数:384

没有更多推荐了,返回首页

关闭
关闭