如何获取一个能唯一标识每台Android设备的序号?

这个问题有很多答案,但是他们中的大部分只在某些情况下有效。

根据测试:

  • 所有的设备都可以返回一个 TelephonyManager.getDeviceId()
  • 所有的GSM设备 (测试设备都装载有SIM卡) 可以返回一个TelephonyManager.getSimSerialNumber()
  • 所有的CDMA 设备对于 getSimSerialNumber() 却返回一个空值!
  • 所有添加有谷歌账户的设备可以返回一个 ANDROID_ID
  • 所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添加了谷歌账户)
  • 目前尚未测试的:没有SIM卡的GSM设备、没有添加谷歌账户的GSM设备、处于飞行模式的设备。

所以如果你想得到设备的唯一序号, TelephonyManager.getDeviceId() 就足够了。但很明显暴露了DeviceID会使一些用户不满,所以最好把这些id加密了。实际上加密后的序号仍然可以唯一的识别该设备,并且不会明显的暴露用户的特定设备,例如,使用 String.hashCode() ,结合UUID:

final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);

    final String tmDevice, tmSerial, tmPhone, androidId;

    tmDevice = "" + tm.getDeviceId();

    tmSerial = "" + tm.getSimSerialNumber();

    androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);

    UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode());

    String uniqueId = deviceUuid.toString();

最后的deviceID可能是这样的结果: 00000000-67a2-c1b2-0000-000073accb13

Android获取设备的唯一识别码|设备号|序号|UUID相关推荐

  1. js获取唯一设备码_HTML5+下用js获取设备的唯一识别码和本地数据库的操作

    HTML5+下用js获取设备的唯一识别码和本地数据库的操作 发布时间:2018-04-24 12:01, 浏览次数:1111 , 标签: HTML js 首先获取设备的唯一标识,由于ios审核的阻挡, ...

  2. Android开发——获取并生成唯一识别码

    方法一:不需要权限(推荐) 使用一些不需要权限的硬件设备码来生成Android设备的唯一识别码 //获得独一无二的Psuedo ID public static String getUniquePsu ...

  3. 热点连接的设备android,Android获取实时连接热点的设备IP

    最近有很多网友向小编咨询这样的问题:通过读取/proc/net/arp文件可以得到连接当前热点的设备的IP,但是一旦设备断开后,该设备的IP还是存在该文件中,遇到这样的麻烦不知道该如何解决了. 就像系 ...

  4. 格式android id,android 获取APP的唯一标识applicationId的实例

    使用getIdentifier()方法可以方便的获各应用包下的指定资源ID. 方式一 int indentify = getResources().getIdentifier("com.te ...

  5. Android app 标签,android 获取APP的唯一标识applicationId的实例

    使用getIdentifier()方法可以方便的获各应用包下的指定资源ID. 方式一 int indentify = getResources().getIdentifier("com.te ...

  6. 获取Android设备的唯一识别码|设备号|序号|UUI

    如何获取一个能唯一标识每台Android设备的序号? 这个问题有很多答案,但是他们中的大部分只在某些情况下有效. 根据测试: 所有的设备都可以返回一个 TelephonyManager.getDevi ...

  7. Android之如何获取Android设备的唯一识别码笔记

    因为需要在项目中需要获得一个稳定.可靠的设备唯一识别码,因此搜了一些网上的资料.今天我们将介绍几种方式. 1. DEVICE_ID 假设我们确实需要用到真实设备的标识,可能就需要用到DEVICE_ID ...

  8. HTML5+下用js获取设备的唯一识别码和本地数据库的操作

    首先获取设备的唯一标识,由于ios审核的阻挡,我现在只是获取它idfa来作为唯一识别码(这个会被重置,如果idfa不重要的话是可以考虑此方法的),Android就不用多说了 if(ua.match(/ ...

  9. java获取唯一序列号,Android 获取本机唯一序列号 和可变UUID方法

    UUID+设备号序列号 唯一识别码(不可变) private String getMyUUID(){ final TelephonyManager tm = (TelephonyManager) ge ...

最新文章

  1. 1351.统计有序矩阵中的负数
  2. 安装和配置以下合同 14.1管理
  3. Linux平台-×××
  4. 【计算理论】计算复杂性 ( 多项式时间规约 | NP 完全 ★ | 布尔可满足性问题 ) ★
  5. Linux下CMake简明教程(六)动态库和静态库的编译控制
  6. centos7下升级cmake,很简单
  7. 黄光裕回应与京东、拼多多竞争:谁也灭不了谁 不排除合作的可能性
  8. GSM掉话原因(网优的基础知识)
  9. java 获取bean 属性_获取javaBean的属性名属性值属性类型
  10. 安卓为什么没有菊花进度条_全新软件首发,居然明目张胆的开车!支持ios+安卓,请务必低调使用!...
  11. 走进C标准库(6)——string.h中函数的实现memchr
  12. 联想i5无线网无法连接服务器,联想笔记本无线网络连接不上是什么原因
  13. 计算机建模步骤,cad建模步骤
  14. 常见几个排序源码及二分查找源码
  15. 力扣1438.绝对差不超过限制——python
  16. 仿b站的动漫视频网站
  17. android点击按钮打开自带浏览器,android – 如何在默认浏览器或webview中打开按钮单击URL...
  18. 沈航计算机学院研究生奖学金政策,渤海大学全日制硕士研究生奖助政策
  19. PS设置图片部分透明
  20. IDEA+tomcat在debug中关于断点的报错:No executable code found at line XX in class XXX

热门文章

  1. 支付宝微信个人免签支付
  2. 珞珈一号全国一张图相关信息及对于影像校正的一些思考
  3. 珞珈一号01星(luojia1-01)的夜间灯光影像数据处理流程
  4. 基于MATLAB的数字滤波器设计
  5. 什么软件可以使Excel数字转换成条形码
  6. MindMapper的使用技巧分享
  7. 如何读论文[论文精读]
  8. 常见 TCP 拥塞控制(避免)
  9. 2020年全球数据中心十大发展趋势
  10. mesh渲染到ui_Unity中UI曲面化