1.最简单的方式:获取IMEI号

TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);

String szImei = TelephonyMgr.getDeviceId();

权限

2.最保险的方式:通过UUID获取

//获得独一无二的Psuedo ID

public static String getUniquePsuedoID() {

String serial = null; String m_szDevIDShort = "35" + Build.BOARD.length()%10+ Build.BRAND.length()%10 + Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + Build.DISPLAY.length()%10 + Build.HOST.length()%10 + Build.ID.length()%10 + Build.MANUFACTURER.length()%10 + Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + Build.TAGS.length()%10 + Build.TYPE.length()%10 + Build.USER.length()%10 ; //13 位

try {

serial = android.os.Build.class.getField("SERIAL").get(null).toString(); //API>=9 使用serial号

return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();

} catch (Exception exception) {

//serial需要一个初始化

serial = "serial"; // 随便一个初始化

}

return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();

3.为毛其他有局限性:

用户手机号:用户可以更改他们的手机号 (非常不可靠)

Android ID:这个是不靠谱的,因为有时候它是null的,文档中明确说明,如果你恢复了出厂设置,那他就会改变的。而且如果你root了手机,你也可以改变这个ID

String m_szAndroidID = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

它返回的是9774d56d682e549c这样一串东西,倒是不需要什么权限.

WLAN MAC地址:这也可以得到一个独一无二的ID号,返回的是 00:11:22:33:44:55 。但是当没有wifi的时候,我们是无法获得数据的。

蓝牙MAC地址:市面上大部分的应用不使用蓝牙,如果你的应用根本没用蓝牙,而你却和用户要了蓝牙权限的,那你很可疑。

android 自动生成id,《转载》生成Android设备的唯一ID相关推荐

  1. android自动测试2:使用android studio实现设备循环自动重启

    一.前提: apk可以获得系统签名 二.适用: 需要对android设备进行循环重启测试 三.步骤: 1. AndroidManifest.xml中添加以下权限: <uses-permissio ...

  2. 全局唯一递增的id_分布式ID生成方法-趋势有序的全局唯一ID

    一.需求缘起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: (1)消息标识:message-id (2)订单标识:order-id (3)帖子标识:tiezi-id 这个记录标识往往就是数据 ...

  3. android自动申请悬浮窗权限,Android 悬浮窗--无需权限

    image.png 无需一切权限,不受各种国产ROM限制,默认可以显示的应用内悬浮窗. 应用内显示,无需申请任何权限 应用内显示,所有机型都可以默认显示悬浮窗,无需引导用户做更多设置 支持拖拽 超出屏 ...

  4. java生成8位的uuid_分布式系统全局唯一ID简介、特点、生成

    一.什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识. 如在金融.电商.支付.等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息, ...

  5. android自动接听电话并回复,android自动接听电话各种异常处理

    public void autoAnswerPhone() { try { Log.i(TAG,"autoAnswerPhone"); ITelephony itelephony ...

  6. java id生成器 分布式_分布式高效唯一ID生成器(sequence)

    分布式高效唯一ID生成器(sequence) 简介 高效GUID产生算法(sequence),基于Snowflake实现64位自增ID算法. Twitter-Snowflake算法产生的背景相当简单, ...

  7. android 获取蓝牙设备id_不需要任何权限获得Android设备的唯一ID

    这个问题来自于Is there a unique Android device ID? 我对这个问题的答案做了整理,包括将另一篇文章加入进来作为补充,可以完美解决此问题. 作者提出的问题: Andro ...

  8. 获取android设备唯一编号_获取android设备的唯一ID

    在Android开发者官方blog上已经有一篇文章对此做了总结(参考链接1), 这里结合自已查询的资料再总结一下, 并给出最终符合要求的解决方案. 1. ANDROID_ID, Secure.ANDR ...

  9. 得到Android设备的唯一id

    权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses- ...

最新文章

  1. RedHat 7配置FTP服务
  2. 最短Hamilton路径-状压dp解法
  3. No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)...
  4. HTML5 canvas 初级入门教程【转】
  5. [英]Promises Don't Come Easy
  6. tika设置文件长度限制_MySQLInnoDB某些你没注意过的限制
  7. 毕业与计算机专业,电子与计算机工程专业毕业后干什么
  8. Flask使用bootstrap为HttpServer添加上传文件功能
  9. 小鹏汽车提交赴美IPO:上半年营收1.42亿美元 何小鹏持股31.6%为最大股东
  10. 火车票售票系统mysql_2021年元旦火车票今日开售!具体开售时间是几点?
  11. 我是如何提升 Rust 编译器的速度?
  12. mysql 初始化_MySQL安装与初始化
  13. python二维数组切片_python语言多维数组切片方法
  14. SpringBoot图片上传报错:The field headImg exceeds its maximum permitted size of 1048576 bytes.
  15. 华为路由器基本使用命令
  16. Directions Reduction-方向减少
  17. uni-app 动态获取元素wight/height/left/right/top/bottom/id
  18. 江苏省计算机二级高级office知识点,计算机二级高级Office常见知识点积累
  19. html中盒子的定位,css盒子的定位有哪些方法?
  20. 构造方法的定义、重载、调用、使用 (1)定义商品类Goods,

热门文章

  1. phpstorm破解
  2. 【人工智能毕设之基于opencv的人脸识别智能考勤管理系统
  3. border-image 边框图片
  4. 基于Tusimple数据集在windows cpu上跑通车道线检测算法LSTR
  5. 劳拉的进化:在游戏中创建真实人物与环境的技术
  6. 移动端 H5页面 控制台输出
  7. 用XML创建可排序、分页的数据显示页面
  8. CSS RGB的补色/互补色
  9. 安卓手写字迹源码(毛笔,喷枪,马克笔等效果)
  10. 动力节点CRM项目开发【准备篇】