【Android】设备标识简介(imei imsi mac地址)
IMEI:
1- 意义:
参考http://zh.wikipedia.org/zh-cn/IMEI 国际移动设备辨识码 ,共15位,和厂商,产地等有关。
2- 获取:
直接查看设备信息,设置-关于手机-状态信息-IMEI
可以通过代码 TelephoneManager getDeviceId() 方法,需要指定权限 android.permission.READ_PHONE_STATE
权限:<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
代码示例:
TelephonyManager telephonyManager ;
telephonyManager = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId();
Log.v("IMEI", imei);
结果:
3- 风险:
a)有些厂商定制机器获取到的值为空 或者 不同的机器返回同一个值
b)刷机会变化
IMSI:
1- 意义:
参考http://zh.wikipedia.org/wiki/国际移动用户识别码
国际移动用户识别码, 15位,通常存放在SIM卡中
2- 获取:
通过代码 TelephoneManager getSubscriberId(),需要指定权限 android.permission.READ_PHONE_STATE
权限:<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
代码示例:
TelephonyManager telephonyManager ;
telephonyManager = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String imsi = telephonyManager.getSubscriberId();
Log.v("imsi", imsi);
结果:
3- 风险:
由于和SIM卡相关,设备更换SIM卡,必然会引起变化,当没有imsi的时候,获取到的imsi为空串""
在有的机器上,通过代码也可能出现获取到的IMSI为空的情况
mac地址:
1- 获取:
直接查看,设置-关于本机-状态信息-WLAN MAC地址 或者 代码获取:通过WifiInfo getMacAddress()方法
权限:<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
代码示例:
WifiManager wifiManager;
wifiManager = (WifiManager)this.getApplication().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String macAddr = wifiInfo.getMacAddress();
Log.v("macAddr", macAddr);
结果:
2- 风险:
可能获取不到
【Android】设备标识简介(imei imsi mac地址)的更多相关文章
- 在安卓6.0(及以上)设备上无法获取无线网卡MAC地址的解决方案
在安卓6.0以下的设备上,通过WifiManager.getConnectionInfo().getMacAddress()即可获取WLAN物理地址, 而在6.0及以上,以此方式获取到的MAC地址为固 ...
- 读取Android设备的MAC地址
读取Android设备的MAC地址 AndroidUtil.java package com.csdn.android.util; import com.csdn.android.framewor ...
- 浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID
---恢复内容开始--- 转:https://www.jianshu.com/p/38f4d1a4763b [心路历程] 最近刚好在思考工作中统计数据所用的标识码产生的数据误差到底有多大,借此机会几番 ...
- 浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID -费元星
在公司做数据分析的时候,发现NA端有很多ID,所有来系统的理解一下,有问题大家多指出 [心路历程] 最近刚好在思考工作中统计数据所用的标识码产生的数据误差到底有多大,借此机会几番搜索资料+请教大神 ...
- Android开发 - 获取Android设备的唯一标识码(Android 6.0或更高)
在我们的APP开发中,通常需要获取到设备的唯一标识.在Android6.0之前,有很多方法我们可以方便获取到硬件的唯一标识,但是在Android6.0之后,Android系统大幅限制了我们获取设备的硬 ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
- MAC地址与IP地址的区别
介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题. 一.基础知识 如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来 ...
- 三十天学不会TCP,UDP/IP编程--MAC地址和数据链路层
这篇文章主要是来做(da)推(guang)介(gao)的!由于这两年接触到了比较多的这方面的知识,不想忘了,我决定把他们记录下来,所以决定在GitBook用半年时间上面写下来,这是目前写的一节,后面会 ...
- 隐私:随机选择 MAC 地址
隐私:随机选择 MAC 地址 从 Android 8.0 开始,Android 设备在未连接到网络的情况下探测新网络时会使用随机 MAC 地址. 在 Android 9 中,您可以启用开发者选项(默认 ...
随机推荐
- Delphi Length函数
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- c中关于#与##的简易使用
#运算符用于在预编译时,将宏参数转换为字符串 eg. #include <stdio.h>#define CONVERT(f)(#f) void helloworld(){ printf( ...
- JS 混淆加密
http://www.javascriptobfuscator.com/Javascript-Obfuscator.aspx http://www.javascriptobfuscator.com/d ...
- [Red5]Red5之Flash流媒体服务器的安装与使用教程完整版(组图)
参看下面链接:http://www.cuplayer.com/player/PlayerCode/Red5/2013/0319/760.html
- ERP行业推荐参考书籍
1 书名:<ERP 理论.方法与实践> 作者: 周玉清等编著 出版社:电子工业出版社 简介:本书全面介绍了ERP的基本原理和处理逻辑,以大量篇幅讨论了ERP的计划功能,特别是主生产计划功能 ...
- Common-logging 与 Log4j的结合使用
分类: Java 一.结合说明 在我们的日常开发中,经常需要通过输出一些信息进行程序的调试,如果到处都用system.out.println()则在项目发布之后要逐一删除,而log4j提供了一种新的调 ...
- PHP读取EXCEL时写入数据乱码解决办法
第一步排除excel读取的数据是不是乱码 EXCEL读取时经常会出现乱码,而我们常用的字符集是UTF-8 ,GB2312(GBK) ,这就需要对编码进行转换,但是又不能对纯数字和英文字符转换,否则会乱 ...
- openssl 第一篇
自从老罗赞助了openssl以及心脏出血事件的新闻,得以了解了openssl.那么什么是openssl呢?下面摘自官网: The OpenSSL Project is a collaborative ...
- Effective Java从零开始 - 就是爱Java
或许你已经开始写Java了,或许只是想要一窥这个的世界,无论是抱着何种心情来看Java,从零开始,会一种没有负担,没有包袱的事,你会发现写程序不再是枯燥乏味,孤单寂寞的一个人,而是生活中最快乐的学习之 ...
- DropBox与Box的区别,包括直接的投资人的评价(本地Sync可能还是挺重要的)
作者:曲凯链接:http://www.zhihu.com/question/22207220/answer/20642357来源:知乎著作权归作者所有,转载请联系作者获得授权. Box和Dropbox ...