IMEI的概念

  • IMEI(International Mobile Equipment Identity):

是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。

手机IMEI码结构说明

手机IMEI码由15-17位数字组成。

第一部分 TAC,Type Allocation Code,类型分配码,由8位数字组成(早期是6位),是区分手机品牌和型号的编码,该代码由GSMA及其授权机构分配。其中TAC码前两位又是分配机构标识(Reporting Body Identifier),是授权IMEI码分配机构的代码,如01为美国CTIA,35为英国BABT,86为中国TAF。

第二部分 FAC,Final Assembly Code,最终装配地代码,由2位数字构成,仅在早期TAC码为6位的手机中存在,所以TAC和FAC码合计一共8位数字。FAC码用于生产商内部区分生产地代码。

第三部分 SNR,Serial Number,序列号,由第9位开始的6位数字组成,区分每部手机的生产序列号。

第四部分 CD,Check Digit,验证码,由前14位数字通过Luhn算法计算得出。

第五部分 SVN,Software Version Number,软件版本号,区分同型号手机出厂时使用的不同软件版本,仅在部分品牌的部分机型中存在。

一般来说,由IMEI码中的TAC部分就可以得出手机的型号,但也有个别品牌不同型号的手机共用一个TAC码。同时,由于一个TAC最多只能对应6位数字序列号,即100万台手机,所以诺基亚N95、苹果iPhone等热门机型有多个TAC号段。

代码:

代码主要有两部分,一是Java代码,另一个则是Manifest.xml中的权限。

界面的布局只有一个按钮部分,在这里不详细给出。

package com.example.getimei;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button getIMEI = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getIMEI = (Button)findViewById(R.id.getIMEI);
getIMEI.setOnClickListener(new MyButtonListener());
}
private class MyButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TelephonyManager telephonyManager = (TelephonyManager)MainActivity.this.getSystemService
(Context.TELEPHONY_SERVICE);
String IMEI = telephonyManager.getDeviceId();
Toast.makeText(MainActivity.this, "您手机的IMEI号码" + IMEI,
Toast.LENGTH_LONG).show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}

AndroidManifest.xml部分

   <uses-permission android:name="android.permission.READ_PHONE_STATE" />

Android中获取手机的IMEI相关推荐

  1. Android中获取手机中的联系人信息

    #Android中获取手机中的联系人信息 1.0.查看系统通讯录的表,表路径:data->data->com.android.providers.contacts->database ...

  2. Android中获取手机 IMEI Mac地址 IP地址

    一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...

  3. Android中获取手机电量信息

    有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器Inte ...

  4. Android中获取手机设备信息、RAM、ROM存储信息,如宽、高、厂商名、手机品牌

    借鉴:https://www.jianshu.com/p/ca869aa2fd72 今天有两个工具类总结,代码里都有注释,直接看代码. 一.首先第一个,主要获取手机设备信息DeviceInfoUtil ...

  5. android获取机主手机号,Android中 获取手机通讯录和手机机主手机号码——诺诺涂鸦记忆...

    目标:获取手机通讯录联系人的姓名和手机号码,屏幕座机和其他非手机号码,避免号码重复 (注:我只给出了代码思路和用法示例,大家可以自己调用方法debug运行看结果或者自行编写显示结果的代码,根据需要进行 ...

  6. android中获取手机系统年、月、日

    在android中系统的月份是从0-11计算的,所以我们想要拿到真实的月份需要加一. int year = Integer. valueOf (Calendar. getInstance ().get ...

  7. Android中获取手机内所有应用信息

    有时候我们开发中需要获取到手机中安装的所有软件相关信息,比如判断是否安装了某个软件,或者获取某个软件的具体包名等.这里我贴出相关方法. 首先我们要有一个APP的实体类 public class App ...

  8. Android 中获取手机屏幕的宽度和高度(单位为像素)

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

  9. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法

    android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法 1)获取运营商sim卡imsi号: String android_imsi = telephonyManager.getSub ...

最新文章

  1. 百度吴甜宣布百度AI加速器第二期开营,要让创业者跑得更快
  2. 开发者推出可重用地址提案提升BCH性能
  3. 奇数码问题(逆序对)
  4. ACE_Message_Block功能简介
  5. 什么是CDP(连续数据保护)?
  6. 消息称高通可供货华为:麒麟处理器真将绝版?
  7. flask-admin初次使用遇到的几个小问题(显示对象内存地址,编辑无法正确跳转)
  8. Efficient Diffusion Models for Vision: A Survey
  9. 运算放大器权威指南(第三版)
  10. C#窗体控件—textbox
  11. DMS文档内容管理系统
  12. Excel文件编辑保护如何取消?
  13. javascript 学习
  14. 拯救者Y7000电脑一直呼呼呼 声音很大的解决办法
  15. 【微信小程序】获取Bmob后端云数据库某一数据表的所有记录
  16. 科技人才开发效率的空间杜宾模型分析
  17. Docker Note [vaynexiao]
  18. 谁知道嵌入式中的GND到底是什么?聊聊它的本质
  19. matlab关闭文本,matlab parpool 关闭
  20. onTouchEvent 和 onInterceptTouchEvent 事件触摸

热门文章

  1. 漫画:据说很多搞软件的羡慕硬件工程师
  2. 面试官:Spring AOP、AspectJ、CGLIB 都是什么鬼?它们有什么关系?
  3. 从零开始搭建创业公司后台技术栈!
  4. Leader晋升失败,CTO说,没有商业敏感度,迟早被淘汰
  5. 朋友问我学习高并发需不需要阅读源码,我是这样分析的!!
  6. 中国人长期“霸榜”GitHub,国外开发者发文控诉
  7. K8s, Kafka事件溯源架构模式和用例示例
  8. 攻克指针(三)~自我总结篇
  9. 引用外部jQuery地址
  10. Docker对AUFS的使用