首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android getSerial()没有返回实际的序列号或IMEI

Android getSerial()方法用于获取设备的序列号或IMEI(国际移动设备身份码)。然而,根据Android官方文档,从Android 10开始,getSerial()方法已被弃用,并且在Android 11中已完全移除。这是为了保护用户的隐私和设备安全。

在Android 10及更高版本中,应使用新的API来获取设备标识符。以下是一些常用的方法:

  1. 获取设备的Android ID: Android ID是一个64位的十六进制字符串,用于唯一标识设备。可以使用以下代码获取Android ID:
代码语言:txt
复制
String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);

Android ID的优势是在设备恢复出厂设置后仍然保持不变。然而,某些设备可能会返回相同的Android ID,因此不建议将其用作唯一标识符。

  1. 获取设备的UUID: UUID(通用唯一标识符)是一个128位的标识符,可以用于唯一标识设备。可以使用以下代码生成UUID:
代码语言:txt
复制
UUID uuid = UUID.randomUUID();
String deviceId = uuid.toString();

每次生成的UUID都是唯一的,但在设备恢复出厂设置后会发生变化。

  1. 获取设备的MAC地址: MAC地址是设备的物理地址,可以用于唯一标识设备。然而,从Android 6.0(Marshmallow)开始,获取MAC地址需要特定的权限,并且在Android 10中已被限制。因此,不推荐使用MAC地址作为设备标识符。

在实际应用中,根据具体需求选择合适的设备标识符方法。例如,如果需要一个持久的唯一标识符,可以使用Android ID。如果需要一个每次都不同的标识符,可以使用UUID。

腾讯云提供了丰富的云计算产品和服务,可以满足各种应用场景的需求。以下是一些与设备标识符相关的腾讯云产品:

  1. 腾讯移动分析(https://cloud.tencent.com/product/ma): 腾讯移动分析是一款专业的移动应用数据分析产品,可以帮助开发者深入了解用户行为和应用性能。通过腾讯移动分析,可以获取设备的Android ID和其他设备标识符,并进行数据分析和统计。
  2. 腾讯移动推送(https://cloud.tencent.com/product/tpns): 腾讯移动推送是一款高效可靠的移动消息推送服务,可以帮助开发者实现消息推送功能。通过腾讯移动推送,可以向特定设备或用户发送消息,利用设备标识符进行消息推送。

请注意,以上产品仅作为示例,具体选择产品应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 设备唯一标识(适配Android版本)

④ 网络安全,比如银行类APP,第一次登录会麻烦一些,后面就比较容易了。 而在实际开发中用最多就是防止重复登录了。 1....这就是概念,也就是说你要拿到唯一标识是独一无二才行。   可惜Android平台并没有提供稳定API来让我们获取到唯一设备ID。...下面先配置这个项目,在上面我说过IMEIAndroid9.0时就被弃用了,说是弃用实际上是禁止第三方应用获取IMEI,这么一说,那它在Android9.0以下就是可以用,那么在Android1.0...可以看到在Android5.0上是可以正常获取到IMEI。 刚才我是通过获取IMEI号,下面来试试获取序列号、设备序列号以及WIFI 模块MAC地址。...); } 实际上只要修改一下initView中对于Android版本判断即可。

4.3K41
  • Android 上关于设备唯一标识调研

    (我对不插卡情况存在疑问): 我两张联通卡分别获取imei1和imei2 1、不插卡(两张卡都是GSM卡) getDeviceId() 返回 imei1 getDeviceId...(0) 返回 imei1 getDeviceId(1) 返回 imei2 2、卡1插CDMA卡,卡2不插卡(卡2插GSM卡) getDeviceId() 返回...meid getDeviceId(0) 返回 meid getDeviceId(1) 返回 imei2 3、卡1不插卡(卡1插GSM卡)卡2插CDMA卡...getDeviceId() 返回 imei1 getDeviceId(0) 返回 imei1 getDeviceId(1) 返回 meid 后来到了Android 8.0 ,...Serial Number (设备序列号) 这个东西理论上来说是来自硬件,出厂是就设置好了,但是有些设备厂商会随便写一个值 Build.SERIAL 在 api>=26时候 可以这么获取 Build.getSerial

    3.4K30

    Android 如何获取有效DeviceId

    Android 10上DeviceId 从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备不可重置标识符(包含 IMEI序列号...而这个权限是系统权限,也就是说一般应用将无法再获取IMEI序列号 受影响方法包括: Build getSerial() TelephonyManager getImei() getDeviceId...() getMeid() getSimSerialNumber() getSubscriberId() 如果您应用没有该权限,但您仍尝试查询不可重置标识符相关信息,则平台响应会因目标 SDK 版本而异...如果应用以 Android 9(API 级别 28)更低版本为目标平台,则相应方法会返回 null 占位符数据(如果应用具有 READ_PHONE_STATE 权限)。...只要签署密钥相同(并且应用未在 OTA 之前安装到某个版本 O),ANDROID_ID 值在软件包卸载重新安装时就不会发生变化。

    7K30

    浅谈android获取设备唯一标识完美解决方案

    * 1,andriod(a) * * 识别符来源标志: * 1, wifi mac地址(wifi); * 2, IMEIimei); * 3, 序列号(sn); * 4,...在以前,我们Android设备是手机,这个DEVICE_ID可以同通过TelephonyManager.getDeviceId()获取,它根据不同手机设备返回IMEI,MEID或者ESN码,但它在使用过程中会遇到很多问题...,没有用到其他通话功能,那这个权限有点大才小用 bug:在少数一些手机设备上,该实现有漏洞,会返回垃圾,如:zeros或者asterisks产品 MAC ADDRESS 可以使用手机Wifi蓝牙...厂商定制系统Bug:有些设备返回值为null。 设备差异:对于CDMA设备,ANDROID_ID和TelephonyManager.getDeviceId() 返回相同值。...系统中并没有可以可靠获取所有厂商设备唯一ID方法,各个方法都有自己使用范围和局限性,这也是目前流行Android系统版本过多,设备也是来自不同厂商,且没有统一标准等原因造成

    18.9K42

    Android8.0与Android9.0新特性兼容适配代码修改

    Android8和Android9主要特性说明,附录表格如下图所示: ?...不过附录表格只涵盖了常见功能代码适配,而Android8和Android9众多新特性还涉及到其它代码适配,下面就补充列出Android8和Android9额外兼容处理说明: Android8.0...设置时间点     } 完整代码例子见以下github页面 https://github.com/aqi00/android2/blob/master/animation/src/main/java...Android9.0 1、获取设备序列号方式由Build.SERIAL改为Build.getSerial(),同时还需要先获得权限READ_PHONE_STATE 获取设备序列号兼容代码示例如下...:     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {         et_wifi_name.setText(Build.getSerial

    3.4K20

    如何使用IMEI号码追踪丢失安卓手机

    Android)手机 IMEI(国际移动设备识别码)是GSMA授权唯一15位代码,就像手机身份证一样。每当电话使用特定网络拨打接听电话,发送接收消息时,都会自动发出并跟踪其IMEI号码。...阅读看不见内容:如何轻松显示您IMEI号码以了解更多详细信息以找到序列号。 请注意,如果您手机同时支持两个SIM卡,则有两个不同IMEI号码。...确保您手机在Android 4.4更高版本上运行。然后,开始安装该应用程序。 步骤2:完成安装后,运行应用程序。提供IMEI跟踪器应用程序要求所有权限,包括联系人、电话、存储、SMS和位置。...Android:在任意聊天窗口输入“//recover” 如果微信没有损坏就会出现“损坏文件不存在“提示;如果有损坏直接进入修复模式。...如果要关闭这个功能只需要把相同代码再次发送一遍。 获取当前聊天窗口总消息数 虽然这个代码实际上可能并不常用;不过装装逼还是可以

    11.2K30

    获取Android设备DeviceId与反Xposed Hook技术

    ,另外也可以通过MAC地址或者蓝牙地址,序列号等,暂列如下: IMEI : (International Mobile Equipment Identity) 或者MEID :( Mobile Equipment...,比如: 可以采用一些系统隐藏接口来获取设备信息,隐藏接口不太容易被篡改,因为可能导致整个系统运行不正常 可以自己通过Binder通信方式向服务请求信息,比如IMEI号,就是想Phone服务发送请求获取...方法,进一步通过ITelephonygetDeviceId获取DeviceId,不过这个方法跟ROM版本有关系,比较早版本压根没有getITelephony方法,早期可能通过IPhoneSubInfo...getDeviceId来获取,不过以上两种方式都很容被Hook,既然可以Hook getDeviceId方法,同理也可以Hook getITelephony方法,这个层次反Hook并没有多大意义。...比如序列号、手机硬件信息等,例如获取序列号,在Java层直接利用Buildfeild获取即可 public static final String SERIAL = getString("ro.serialno

    2.7K20

    IMEIESNMEID号码「建议收藏」

    手机在国内进行入网测试时,是需要提供真实IMEIMEID,出口海外手机也是需要真实IMEI号码和MEID号码。...2、IMEI知识介绍 IMEI[1]是International Mobile Equipment Identity缩写,中文是国际移动设备识别码,是区别移动台设备标志,可用于监控被窃无效移动设备...IMEI号码分配与手机认证测试没有关系,IMEI号码分配由GSMA组织根据厂家需求申请而分配IMEI号码申请,不需要经过测试或者认证,只需要向认证机构提供一些相关产品信息即可。...ZZZZZZ-序列号,有效范围000000-999999,由厂家分配 C-校验码,有效范围0-9 MEID号码查看,目前没有一个通用方法,由各手机制造商自己设置。...4、结束语 IMEI号码和MEID号码是手机重要身份识别码,只有正确和合理使用这些号码,才能保证手机在实际通讯网络中正常有序运行,也保证了政府网络运营商能正确对手机在其网络中合法使用进行监督管理

    2.2K20

    常用改机软件有哪些?除了需要Xpodes工具框架,还有一样必不可少

    芯片等等区别。其操作方法特略有不同。有些老版机 型可以直接开端口修改。 新版本开端口只能读取参数。确没有写入权限。...安卓手机设备信息修改是指,通过软件形式修改安卓设备Android_Id、IMEI、手机序列号、手机号码、WIFI-MAC、WIFI-Name、安卓系统版本、ROM固件、手机号码、手机型号、手机品牌...运行抹机王 点击:一键抹机/一键新机,软件开始修改设备信息并有相关提示 软件本身默认修改:Android_Id、IMEI、手机序列号、手机号码、WIFI-MAC、WIFI-Name、安卓系统版本、ROM...IMEI是12345678900000; 3、在应用面板中启动串号查询工具; 4、可以看到,在启动查询工具之后,查看到手机串号IMEI已经变成刚修改之后IMEI值,也就是一键成功修改了手机串号。...4、返回文件浏览界面,然后点击“向上”进入到系统“/system/”路径下,然后找到此目录下“build.prop”,点击它,在打开窗体中选择“ES文本编辑器”其他可以编辑文本文档程序。

    1.3K10

    Android8.0、9.0、10.0、11.0新特性兼容适配代码修改

    ,而Android8和Android9众多新特性还涉及到其它代码适配,下面就补充列出Android8、Android9、Android10额外兼容处理说明: Android8.0 1、属性动画组合...Android9.0 1、获取设备序列号方式由Build.SERIAL改为Build.getSerial(),同时还需要先获得权限READ_PHONE_STATE 获取设备序列号兼容代码示例如下...: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { et_wifi_name.setText(Build.getSerial...2、普通应用无法开启或者关闭WiFi功能 一旦build.gradletargetSdkVersion设置29更高数值(表示目标SDK版本为Android11或以上版本),则调用WifiManager...实例setWifiEnabled方法始终返回false,也就是无法成功设置WiFi启用状态。

    1.1K20

    干货 | 携程Android 10适配踩坑指南

    AndroidX 软件包完全取代了支持库,不仅提供同等功能,而且提供了新库。 1.1 什么是AndroidX Android系统在刚刚面世时候,可能连它设计者也没有想到它会如此成功。...support-v4、appcompat-v7库也不再支持那么久远系统了,但是它们名字却一直保留了下来,虽然它们现在实际作用已经对不上当初命名原因了。...10开始已经无法完全标识一个设备,曾经用mac地址、IMEI等设备信息标识设备方法,从Android 10开始统统失效。...而且,无论你App是否适配过Android Q(既targetSdkVersion是否大于等于29),均无法再获取到设备IMEI等设备信息。...android:maxSdkVersion="28"/> 3.2 Mac地址随机分配 从Android10开始,默认情况下,在搭载 Android 10 更高版本设备上,系统会传输随机分配 MAC

    3.3K77

    Android加密解析

    = URLDecoder.decode(encode); System.out.println("decode:" + decode); //URLDecoder一个没有被...md5之后长度是一样,是单向; 作用:确定数据未被修改,确定数据唯一性 密码一般会md5,加盐 秒传:长度变小了 android supoort v4:检验是否修改过 数字签名作用: 公钥互换:相互置换公钥...-->有别于sim卡序列号 可以作为手机唯一标识,类似我们pc机器码; 两个概念 imei:设备唯一标识; imsi:移动sim卡唯一标识; 买手机:3码合一 手机序列号 电池序列号 手机包装序列号...统计apk安装量 启动应用程序时候.把手机imei号上传到服务器; 获取 TelephonyManager telephonyManager = (TelephonyManager) ctx...复杂化(但是还是不安全) this.PASSWORD = "com.sina.vdisk.security.password.d7af3082d815945ff47ae58647bd9436" + IMEI

    51321

    广告归因-让你彻底弄归因架构实现

    OAID是一种非永久性设备标识符,最长64位,在系统首次启动时候生成 AndroidID: ANDROID_ID是设备首次启动时由系统随机生成一串64位十六进制数字 IMEI: 国际移动设备识别码...(International Mobile Equipment Identity,IMEI),即通常所说手机序列号、手机“串号”,用于在移动电话网络中识别每一部独立手机等移动通信设备,相当于移动电话身份证...=__ADID__&android_id=__ANDROIDID__&imei_md5=__IMEI__&oaid=__OAID__ 比如头条格式是这样ad_name=__AID_NAME__&android_md5...ad_id=__ADID__&android_id=__ANDROIDID__&imei_md5=__IMEI__&oaid=__OAID__接口时 参数中宏会替换成实际点击用户设备值, 如:https...ad_id=123456789&android_id=123456789&imei_md5=123456789&oaid=123456789 接口伪代码: // 统一请求结构 class AdClickRequest

    78521
    领券