记录Android 10 获取设备唯一ID

211 阅读3分钟

在移动应用开发中,设备的唯一标识符对于识别用户和设备、数据分析以及安全管理等方面具有重要意义。本文将介绍设备的不可重置标识符,包括IMEI号和SN号,并探讨关键技术在数据获取和数据储存方面的应用。

一、设备的不可重置标识符

设备的不可重置标识符通常包括IMEI号(International Mobile Equipment Identity)和SN号(Serial Number)。IMEI号是全球唯一的设备标识符,通常由15位数字组成,用于识别移动设备的身份。SN号则是设备的序列号,用于唯一标识设备的生产序列。

二、关键技术在数据获取和数据储存方面的应用

数据获取——设备标识码

在移动应用中获取设备标识码需要考虑唯一性和稳定性。常用的获取方式包括:

  • IMEI号:通过系统API获取设备的IMEI号。
  • SN号:通过系统API获取设备的序列号。

数据存储

数据存储是保障设备标识符安全、稳定和可靠的重要环节。常用的存储方式包括:

  1. Shared Preferences(SP) :用于存储简单的键值对数据,适合存储少量的设备标识码或配置信息。
  2. 文件存储:通过File类进行文件读写操作,可以将设备标识码保存在应用的私有文件目录中,确保数据的安全性和隐私性。
  3. SQLite数据库:适用于存储结构化数据,可以将设备标识码和其他相关信息存储在数据库中,便于管理和查询。
  4. 网络存储:将设备标识码上传至服务器进行远程存储,确保数据的备份和同步。
  5. ContentProvider:用于跨应用共享数据,可以将设备标识码提供给其他应用使用。

Android Q 新变化

在Android Q及以上版本中,系统对数据存储机制进行了一些调整,主要采用了沙箱存储机制:

  • 访问自己沙盒中的文件无需特定权限。
  • 访问系统媒体文件(沙盒外的媒体共享文件)需要申请新的媒体权限。
  • 访问系统下载文件暂时未做限制,但访问其他应用的文件必须允许用户使用系统的文件选择器应用来选择文件。

实现方案

针对数据获取和存储方面的需求,可以采用以下实现方案:

  1. SP + 外部存储的隐藏文件夹:结合Shared Preferences和外部存储,确保设备标识码的安全存储。
  2. 数据存储文件名提醒:建议使用警示语作为文件名,例如“System XXX”、“重要文件勿动”,降低用户手动删除的风险。
  3. 适配Android 11的权限变化:针对Android 11后存储在SD卡中的文件,需要进行适配以确保应用的正常运行。

实现方案的选择

根据项目需求和安全性要求,可以选择以下实现方案之一:

  • 数字版权管理(DRM)方案
  • 自定义ID硬件信息拼凑方案
  • 移动安全联盟方案
  • 数字联盟可信ID方案

结论

在移动应用开发中,设备标识符的管理与存储是一项重要而复杂的任务。开发者应根据项目需求和系统变化,选择合适的技术方案,并严格遵守相关安全规范,确保用户数据的安全和隐私。