Android应用获取设备序列号的方法

 更新时间:2017年06月06日 10:48:17   作者:djstavaV  
本篇文章主要介绍了Android应用获取设备序列号的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

软硬件环境

  1. Macbook Pro MGX 72
  2. Android studio 2.1.2
  3. Android 5.1.1

前言

上一篇介绍了如何获取ethernet的MAC地址,对于厂商来讲,除了MAC号,还有一项数据也很重要,那就是机器序列号,它是机器出厂时确定的,也是主要标识,每台机器都不一样。

要想获取到序列号,必须要先知道序列号从哪里来,写到了哪里。一般情况下,序列号都是厂商自己定义的一串字串,字串中的某几位会有不同含义,比如厂商的ID、出厂时间、机器类型等,另外,运营商定义的序列号几乎也是遵循这样的规律。

出厂时序列号的烧录

这个是烧录程序做的事情。首先,需要设计好flashmap,一般来讲,会拿出一块独立的分区用来存储这些固化信息,这些信息一经烧录,就不会去改变。Android镜像中的boot.img、system.img、userdata.img等等也是存放在这样的分区中。Android系统的烧录,一般会采用fastboot去做,简单、方便、快捷。

uboot获取序列号

序列号写入到了flash后,uboot就有办法获取到,然后uboot就可以将其以(key,value)的形式传递给kernel,当然传给kernel的参数并非只有序列号,所以如果你需要传一些自定义的数据,同样也可以通过这种方法去实现。在Android中,传递的是androidboot.ro.serialno。

android app中获取序列号

综上所述,在App中去获取序列号,实际上就是去获取android ro属性中的某个值,明白了这点,事情就好办了。看下面的代码实现

private String getSerialNumber(){

  String serial = null;

  try {

    Class<?> c =Class.forName("android.os.SystemProperties");

    Method get =c.getMethod("get", String.class);

    serial = (String)get.invoke(c, "ro.serialno");

  } catch (Exception e) {

    e.printStackTrace();

  }

  return serial;

}

一点扩展

android中的init.hardware.rc,其中(hardware)是各芯片厂商自己的标识。在这个文件中,可以通过setprop命令设置一些系统属性信息,比如mac、厂商id等,然后在android应用中同样可以通过上述方法去获取相应的值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Flutter使用 input chip 标签组件示例详解

    Flutter使用 input chip 标签组件示例详解

    这篇文章主要为大家介绍了Flutter使用 input chip 标签组件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Android实现强制下线功能的示例代码

    Android实现强制下线功能的示例代码

    这篇文章主要介绍了Android实现强制下线功能的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Android中利用SurfaceView制作抽奖转盘的全流程攻略

    Android中利用SurfaceView制作抽奖转盘的全流程攻略

    这篇文章主要介绍了Android中利用SurfaceView制作抽奖转盘的全流程,从图案的绘制到转盘的控制再到布局,真的非常全面,需要的朋友可以参考下
    2016-04-04
  • Android可配置透明度的水印

    Android可配置透明度的水印

    这篇文章主要为大家详细介绍了Android可配置透明度的水印,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 如果你在Android Studio碰到gradle的各种问题就来看这篇文章吧(强烈建议收藏)

    如果你在Android Studio碰到gradle的各种问题就来看这篇文章吧(强烈建议收藏)

    这篇文章主要介绍了你可能会在Android Studio碰到gradle的各种问题,完美解决关于gradle的全部问题,切记收藏以防需要的时候找不到了哦
    2021-08-08
  • 手把手教学Android用jsoup解析html实例

    手把手教学Android用jsoup解析html实例

    本篇文章主要介绍了手把手教学Android用jsoup解析html实例,jsoup 是一款Java 的HTML解析器。具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Android抢红包助手开发全攻略

    Android抢红包助手开发全攻略

    这篇文章主要为大家详细介绍了Android抢红包助手开发全攻略,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Android用注解与反射实现Butterknife功能

    Android用注解与反射实现Butterknife功能

    Butterknife是一个在android上实现ioc(控制反转)的一个库。ioc的核心是解耦。解耦的目的是修改耦合对象时不影响另外一个对象,降低模块之间的关联。在Spring中ioc更多的是依靠xml的配置。而android上的IOC框架可以不使用xml配置
    2022-11-11
  • Android编程自定义title bar(标题栏)示例

    Android编程自定义title bar(标题栏)示例

    这篇文章主要介绍了Android编程自定义title bar(标题栏)的方法,结合实例形式分析了Android针对标题栏的设置与页面布局操作相关技巧,需要的朋友可以参考下
    2016-10-10
  • Android生成随机数的方法实例

    Android生成随机数的方法实例

    这篇文章主要为大家详细介绍了Android生成随机数的方法实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论