当前位置:  编程技术>移动开发
本页文章导读:
    ▪获取手机装置的IMSI / IMEI 信息        获取手机设备的IMSI / IMEI 信息 IMSI 全称为 International Mobile Subscriber Identity,中文翻译为国际移动用户识别码。它是在公众陆地移动电话网(PLMN)中用于唯一识别移动用户的一个号码。在GSM网.........
    ▪ Intent间传递数据一般有两种常用方法        Intent间传送数据一般有两种常用方法 Intent间传送数据一般有两种常用的办法: 1.extra 2.data. extra可以用Intent.putExtra放入数据。新启动的Activity可用Intent.getExtras取出来Bundle, 然后用Bundles.getLong,.........
    ▪ 贪食蛇开发有关问题4       贪食蛇开发问题4   好多天没有写代码了?整个贪食蛇的项目做到只剩下“继续游戏”这个环节,被困住了,我不知道要用哪种方式比较好,自己想了几个都很麻烦,就想了几天,越想越烦.........

[1]获取手机装置的IMSI / IMEI 信息
    来源: 互联网  发布时间: 2014-02-18
获取手机设备的IMSI / IMEI 信息

IMSI 全称为 International Mobile Subscriber Identity,中文翻译为国际移动用户识别码。它是在公众陆地移动电话网(PLMN)中用于唯一识别移动用户的一个号码。在GSM网络,这个号码通常被存放在SIM卡中。

IMEI 全称为 International Mobile Equipment Identity,中文翻译为国际移动装备辨识码, 即通常所说的手机序列号,用于在手机网络中识别每一部独立的手机,是国际上公认的手机标志序号,相当于移动电话的身份证。序列号共有15位数字,前6位(TAC)是型号核准号码,代表手机类型。接着2位(FAC)是最后装配号,代表产地。后6位(SNR)是串号,代表生产顺序号。最后1位(SP)一般为0,是检验码,备用。国际移动装备辨识码一般贴于机身背面与外包装上,同时也存在于手机记忆体中,通过输入*#06#即可查询。

Android中获取IMSI和IMEI的代码很简单,如下:view sourceprint?1 TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 

2 String imsi = mTelephonyMgr.getSubscriberId(); 

3 String imei = mTelephonyMgr.getDeviceId(); 

4 Log.i("IMSI", imsi); 

5 Log.i("IMEI", imei);

另外不要忘了在AndroidManifest.xml中加上读取手机状态的权限view sourceprint?1 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>



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


IMSI国际移动用户识别码(IMSI)   international mobile subscriber identity 

国际上为唯一识别一个移动用户所分配的号码。

从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其中以O和1打头的MIN资源称为IRM(International Roaming MIN),由IFAST (International Forum on ANSI-41 Standards Technology)统一管理。目前联通申请的IRM资源以09打头。可以看出,随着用户的增长,用于国际漫游的MIN资源将很快耗尽,全球统一采用IMSI标识用户势在必行.

IMSI共有15位,其结构如下:

MCC+MNC+MIN

MCC:Mobile Country Code,移动国家码,共3位,中国为460;

MNC:Mobile Network Code,移动网络码,由两位数字组成,用于识别移动用户所归属的移动网.MIN:移动用户识别号码,是一个十位的等长号码.

可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别. IMEI    国际移动装备辨识码    International Mobile Equipment Identity由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。 首先你要知道什么是手机串号,IMEI俗称“串号”存储在手机的EEPROM(俗称码片)里,每一个移动设备都对一个唯一的IMEI。其组成结构为TAC(6位数字)+FAC(两位数字)+SNR(6位数字)+SP (1位数字)。TAC(设备型号核准号码),由欧洲型号认证中心分配。如果熟悉并了解这个号码对我们今后识别手机会起到非常大的作用.首先TAC码前三位在不同的时期会发生变化,过去的TAC码前三位在现在的手机上不会出现。过去的一些老型号的手机基本上都是446/448开头,如moto v328 nokia 7110,而且即使同一部手机在不同的时期也会有不同的TAC码如大家最熟悉的8210升级8250,如果前三位是448902就不能升级,因为CPU不同。因此过去所说的只要是同一型号的手机TAC码一定一样的说法是不够准确的,再如爱立信的同一型号手机T39MC在不同地区的地方亦会有不同的号码大陆行货为520406香港则为520407。我们知道这些区别后就可以通过TAC码来进行“设备识别”了,而不必去费心的去牢记IMEI的7.8位数字代表的产地。 

另外如果是同一型号的手机其TAC码不同至少说明该机在硬件上有差别,比如NOKIA8210,采用老版本CPU的8210的TAC码是448902,而一般能够写入8250软件版本TAC码则是350开头。实际上TAC码前三位代表的更多的是手机FTA后分配IMEI的时间,真正的设备型号鉴别还是后三位。在2手市场JS通常用T20的主板换上T29的外壳冒充T29售卖,然而T20TAC码为520259真正的T29SC则为520341,因此在拿到这样的手机的时候你只需要查看IMEI的TAC就能够了然于胸,但这并不意味IMEI7,8位没有作用,FAC(工厂装配码)由厂家编码,通常表示生产厂家及其装配地。这也是过去我们最为关注的数字,因为一般作为鉴别产地的号码,它能有非常有效的帮助用户识别手机来源和真伪。比如NOKIA的40/60地球人都知道代表产地是北京和东莞,只要不是这两个号码都被视为水货。而且如果我们结合TAC更可以进一步了解该机的真实身份,例如前面说过T20/T29,我们知道T29是爱立信在北京生产的而T20则产于南京,那么如果一部T29的IMEI上是520259-63。。。呵呵~~那么肯定是假货了。 

有时FAC也不能完全证明手机是否是行货,T68上市后热买一度造成缺货,因此爱立信代理商调集了一部分马来西亚生产(FAC码71)紧急救援,因此这部分有入网许可证T68同样是“行货”。(前面我们我们说过了IMEI和取得入网许可证之间的联系)不过,需要指出的是这部分T68仅限于前期一部分软件版本为R1B的T68。 

FAC码也不是一成不变的即使是同一产地的产品,如西门子3508I和MOTO C300因为其产量巨大已经从开始的37升级到40,而C300的行货FAC也有80/81/82。尤其重要的是欧洲型号认证中心今年重新分配了IMEI,FAC被和TAC合并在一起,FAC码的数字统一从00开始,因此无论什么型号什么品牌其7,8位均为00,如最新的C289,三星V200 、西门子A55、 索尼爱立信T618都在手机上出现了351***00这样的IMEI。幸好我们有前面介绍过的TAC码鉴别办法,如T618的IMEI虽然过去的FAC现在统一为00但港行和大陆行货TAC后三位上还是有差异的.港行为351253大陆T618为351254,其实这里已经说明了一个问题351253代表的是T610(中文繁体版)351254则为T618。而TAC码的真正含义正在于此--设备型号核准。 

接下来该说SNR码了。SNR码即序号码,也由厂家分配。识别每个TAC和FAC中的某个设备的。每一部手机的SNR都不会一样.简单的说该号码可以说明手机出产日期的先后,通常数值越大说明该机型出厂时间越晚,所以如果一部刚上市不久的手机的IMEI上出现了6位的数字你就得了小心了,因为刚上市不久的手机其SNR最多不会超过四位,大家可以在购机时留意一下。也许这可以作为鉴别手机是否被JS修改IMEI的好办法之一。 

SP备用码,顾名思义用来做备用的,关于SP只有一点需要说明现在的SP基本上没有象过去文章所说那样“一般为0”了,其号码由厂家做设置,可忽略。 

当然,有些手机在IMEI 上做了自己的定义.爱立信手机在待机时输入*#06#就会出现17位的IMEI,其最后两位的主要作用是用来识别软件版本。这里需要说明的是三星V200也开始使用17位的IMEI了,最后两位的主要作用是用来识别软件版本,一般来说数值越低版本也越低,比如T618的R1A版本为02而R1F版本则为03,最新的R1L版本是05。

   IMEI为TAC + FAC + SNR + SP
    其组成为:
1、前6位数(TAC)是"型号核准号码",一般代表机型。
2、接着的2位数(FAC)是"最后装配号",一般代表产地。
3、之后的6位数(SNR)是"串号",一般代表生产顺序号。
4、最后1位数(SP)通常是"0",为检验码,目前暂备用。

IMEI码贴在手机背面的标志上,并且读写于手机内存中。它也是该手机在厂家的"档案"和"身份证号"。

如何获得手机的IMEI码:可以在手机上按“*#06#”获得手机的IMEI码。 




    
[2] Intent间传递数据一般有两种常用方法
    来源: 互联网  发布时间: 2014-02-18
Intent间传送数据一般有两种常用方法

Intent间传送数据一般有两种常用的办法: 
1.extra 
2.data. 

extra可以用Intent.putExtra放入数据。新启动的Activity可用Intent.getExtras取出来Bundle, 然后用Bundles.getLong, getInt, getBoolean, getString等函数来取放进入的值。 

而data则是传输url。url可以是指我们熟悉的http, ftp 等网络地址, 也可以指content来指向ContentProvider提供的资源。Intent.setData可以放入数据,Intent.getData可以取出数据。 


    
[3] 贪食蛇开发有关问题4
    来源: 互联网  发布时间: 2014-02-18
贪食蛇开发问题4

  好多天没有写代码了?整个贪食蛇的项目做到只剩下“继续游戏”这个环节,被困住了,我不知道要用哪种方式比较好,自己想了几个都很麻烦,就想了几天,越想越烦,就没再写下去了,获取哪一天看了别人的代码就能知道要怎么弄了,不过我不怎么喜欢看别人的代码,或许可以这样说我不知道抄别人的代码,这可能是我从小做数学题影响到的,我做数学题即使做不出来,我也不会去抄,可能看一下别人的第一步,然后在自己去想,不过这样做出来了我也不会很开心,因为这是别人想出来的,不过自己做出来一次,我永远也不会。。。

  编程我也是一样,我不想去看对方的代码是怎么样的,获取他告诉我思路,然后让我自己去写,我会舒服点,不然让我看代码,我会一直跟这些代码下去写,后来就变成了我只是把它的代码写了一遍。这是我上我老师的编程课后来我发现的一个问题。。上编程课时我有时会写不出代码,我觉得我的编程能力在我们班还算好的,但是上编程课的时候,我很痛苦,以前我不知道,后来我发现,我一直在猜老师是怎么写的。。我每写一句代码,就会像老师是怎么写的。

  这种习惯可能是被老师的教学习惯影响的吧,我很讨厌他上课经常说的一句话“我控制一下你们“,在这里我发下牢骚,从大一的java编程,到大二的j2me,xml,swt,我都很讨厌上他的课,不快乐了,或者不舒服。一上理论课,把知识点从头到尾将一遍,很尽职的一个老师,大学期间唯一一个经常托课的老师,但是为什么他就把计算机课将成历史课了呢?一上上机课,第一句话就是”我先控制一下你们“,然后就开始将代码,等一节课过去后就将代码弄成图片发到ftp上,接着就是我们该抄的时刻了。。

  或许是虚荣心作祟吧,或许我一直努力学习编程的动力,就是让别人认可我,还有那种解决问题时的那种喜悦。别人在玩游戏的时候我去图书馆看书,别人用电脑玩游戏的时候,我在编程,这些都只是我觉得,我比别人努力,我将获得的将会更多,但是我现在没有感觉到。编程课,编出来没有任何意义,或者可是不知道我自己编出来的,还是看老师代码编出来的。即使是期末考也没有任何成就感,因为只要期末把老师给我们的资料多看几遍,背下来,即使一个学期没有来上课,期末照样考得很好。。

 

 就发发牢骚罢了,现在不写代码,上网有点不知道要干什么,所以就干脆不上了,在家看书算了。。。唉,我越来越不像我了,以前要是跟别人说我放寒假在家里看书。。。我自己都不信,跟同学说,或许还会用异样的眼神看我吧。。再一个学期就实习了,越来越怕自己找不到工作了。。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3