设备唯一ID获取,支持安卓/iOS/鸿蒙Next(uni-device-id)UTS插件

设备唯一ID获取 支持安卓/iOS/鸿蒙(uni-device-id)UTS插件

介绍
  1. 获取设备唯一ID、设备唯一标识,支持安卓(AndroidId/OAID/IMEI/MEID/MacAddress/Serial/UUID/设备基础信息),iOS(Identifier/UUID),鸿蒙(AAID/ODID)。
  2. iOS使用keychain持久存储UUID,应用卸载后UUID不变。
  3. 鸿蒙使用AssetMap存储UUID,应用卸载后UUID不变。

猛戳这里去插件市场看看

API说明
方法名称参数返回参数说明
getUniqueDeviceIdstring安卓调用顺序OAID->AndroidId->MacAddress->Serial->UUID。 iOS上使用UUID,keychain存储。鸿蒙上使用UUID,AssetMap存储
getDeviceIdstring安卓返回AndroidId。 iOS返回identifier。鸿蒙返回ODID
getOAID回调安卓返回OAID。 鸿蒙返回AAID。iOS不支持
getImeiOrMeidbooleanstring仅支持安卓,安卓根据参数true返回IMEI否则MEID,安卓10以下可获取,不包括10,安卓6以上申请用户权限
getMacAddressstring仅支持安卓,安卓11以下可用
getSerialstring仅支持安卓,安卓10以下可用
generateUUIDstring无限制
插件试用

扫码下载

VUE代码调用示例

<script>import { getDeviceId,getOAID,getDeviceInfo,generateUUID,getImeiOrMeid,getSerial,getMacAddress,getUniqueDeviceId,isHarmonyOS4 } from "@/uni_modules/CZ-DeviceId";export default {data() {return {title:"DeviceId 示例"}},methods:{testGetUniqueDeviceId(){let id = getUniqueDeviceId();this.showToast(id);},testGetDeviceId(){let id = getDeviceId();this.showToast(id);},testGetOAID(){getOAID((value)=> this.showToast(value));},testGetImeiOrMeid(){getImeiOrMeid(true,(value)=> this.showToast(value));getImeiOrMeid(false,(value)=> this.showToast(value));},testGetSerial(){let sn = getSerial();this.showToast(sn);},testGetMacAddress(){let mac = getMacAddress();this.showToast(mac);},testGenerateUUID(){let uuid = generateUUID();this.showToast(uuid);},testGetDeviceInfo(){let json = getDeviceInfo();this.showToast(json);},showToast(msg){if(msg == ''){uni.showToast({icon:'none',title:'未获取到相关信息'})}else {uni.showToast({icon:'none',title: msg})}},}}</script>
设备唯一标识说明:
AndroidId:
  1. Android ID 是 Android 设备的唯一标识符,用于标识设备。
  2. 基本设备都能正常获取到,少部分设备无法获取;每个应用获取的AndroidID都不一致;单个应用卸载重装后AndroidID不变。
  3. 仅支持安卓。
OAID:
  1. OAID 是 Android 系统提供的用于广告追踪的匿名标识符。
  2. 仅支持安卓。
IMEI/MEID:
  1. IMEI/MEID国际移动设备身份码,用于唯一标识 GSM 和 UMTS 移动电话设备。
  2. 安卓10以前需要权限才能获取到,安卓10以后不支持,不包括安卓10。
MacAddress:
  1. MacAddress是设备的网络接口卡上的物理地址,也就是用于唯一标识网络设备的地址。
  2. 安卓11以前可以获取到。安卓11以后不支持,包括安卓11。
Serial:
  1. Serial是硬件厂商为每个设备分配的一个独特的标识符。
  2. 安卓10以前获取到,安卓10以后不支持,不包括安卓10。
UUID:
  1. 随机生成的设备ID。
  2. 每次获取都会重新生成。
  3. 支持安卓、iOS、鸿蒙。
Identifier:
  1. Identifier是由苹果系统生成的唯一标识符,用于标识同一供应商(即同一开发者账户下的应用)在同一设备上运行。
  2. 仅支持iOS。
AAID:
  1. 鸿蒙应用匿名标识符,标识运行在移动智能终端设备上的应用实例,只有该应用实例才能访问该标识符,它只存在于应用的安装期,总长度32位。与无法重置的设备级硬件ID相比,AAID具有更好的隐私权属性。
  2. AAID和已有的任何标识符都不关联,并且每个应用只能访问自己的AAID。
  3. 同一个设备上,同一个开发者的多个应用,AAID取值不同。
  4. 同一个设备上,不同开发者的应用,AAID取值不同。
  5. 不同设备上,同一个开发者的应用,AAID取值不同。
  6. 不同设备上,不同开发者的应用,AAID取值不同。
  7. 仅支持鸿蒙。
ODID:
  1. 开发者匿名设备标识符,它主要用于开放给开发者的设备标识,同一设备上运行的同一个开发者的应用,ODID相同。帮助开发者更好地理解用户在不同应用间的行为,从而提供更个性化的服务和推荐。
  2. 同一设备上运行的同一个开发者的应用,ODID相同。
  3. 同一个设备上不同开发者的应用,ODID不同。
  4. 不同设备上同一个开发者的应用,ODID不同。
  5. 不同设备上不同开发者的应用,ODID不同。
  6. 仅支持鸿蒙。

用到的权限

安卓
<!-- 读取手机信息 --><uses-permission android:name="android.permission.READ_PHONE_STATE"/><!-- 读取WIFI信息 --><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
iOS

鸿蒙
      {"name": "ohos.permission.STORE_PERSISTENT_DATA","usedScene": {"abilities": ["EntryAbility"],"when": "always"},}
  • 鸿蒙OAID、AAID和ODID分别是什么,如何获取设备的唯一标识?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23005.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正点原子[第三期]Arm(iMX6U)Linux系统移植和根文件系统构建-5.3 xxx_defconfig过程

前言&#xff1a; 本文是根据哔哩哔哩网站上“arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用&#xff1a; …

力扣热题 100:哈希专题三道题详细解析(JAVA)

文章目录 一、两数之和1. 题目描述2. 示例3. 解题思路4. 代码实现&#xff08;Java&#xff09;5. 复杂度分析 二、字母异位词分组1. 题目描述2. 示例3. 解题思路4. 代码实现&#xff08;Java&#xff09;5. 复杂度分析 三、最长连续序列1. 题目描述2. 示例3. 解题思路4. 代码实…

嵌入式八股文(五)硬件电路篇

一、名词概念 1. 整流和逆变 &#xff08;1&#xff09;整流&#xff1a;整流是将交流电&#xff08;AC&#xff09;转变为直流电&#xff08;DC&#xff09;。常见的整流电路包括单向整流&#xff08;二极管&#xff09;、桥式整流等。 半波整流&#xff1a;只使用交流电的正…

AI2-THOR环境下实现机器人导航、物体定位与抓取

1. 依赖安装 pip install ai2thor pip install numpy pillow opencv-python2. 验证安装 # 运行测试脚本验证安装 test_thor.py from ai2thor.controller import Controller controller Controller(scene"FloorPlan1") controller.step(action"MoveAhead"…

Nginx(详解以及如何使用)

目录 1. 什么是Nginx&#xff1f; 2. 为什么使用nginx? 3. 安装nginx 3.1?安装nginx的依赖插件 3.2 下载nginx ?3.3?创建一个目录作为nginx的安装路径 ?3.4?解压 ?3.5?进入解压后的目录 3.6?指定nginx的安装路径 ?3.7?编译和安装nginx 3.8 启动nginx ?…

【自动化脚本工具】Hammerspoon (Mac)

目录 1. 介绍Hammerspoon 1. 介绍Hammerspoon This is a tool for powerful automation of OS X. At its core, Hammerspoon is just a bridge between the operating system and a Lua scripting engine. What gives Hammerspoon its power is a set of extensions that expo…

2025 PHP授权系统网站源码

2025 PHP授权系统网站源码 安装教程&#xff1a; PHP7.0以上 先上传源码到服务器&#xff0c;然后再配置伪静态&#xff0c; 访问域名根据操作完成安装&#xff0c; 然后配置伪静态规则。 Ngix伪静态规则&#xff1a; location / { if (!-e $request_filename) { rewrite …

Javascript网页设计案例:通过PDFLib实现一款PDF分割工具,分割方式自定义-完整源代码,开箱即用

功能预览 一、工具简介 PDF 分割工具支持以下核心功能: 拖放或上传 PDF 文件:用户可以通过拖放或点击上传 PDF 文件。两种分割模式: 指定范围:用户可以指定起始页和结束页,提取特定范围的内容。固定间距:用户可以设置间隔页数(例如每 5 页分割一次),工具会自动完成分…

基于SpringBoot的民宿管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

调用click.getchar()时Windows PyCharm无法模拟键盘输入

文章目录 问题描述解决方案参考文献 问题描述 调用 click.getchar() 时&#xff0c;Windows PyCharm 无法模拟键盘输入 解决方案 Run → Edit Configurations… → Modify options → Emulate terminal in output console 参考文献 Terminal emulator | PyCharm Documentati…

hugging face---transformers包

一、前言 不同于计算机视觉的百花齐放&#xff0c;不同网络适用不同情况&#xff0c;NLP则由Transformer一统天下。transformer是2017年提出的一种基于自注意力机制的神经网络架构&#xff0c;transformers库是hugging face社区创造的一个py库&#xff0c;通过该库可以实现统一…

AI大模型学习(四): LangChain(三)

Langchain构建代理 语言模型本身无法执行动作,他们只能输出文本,代理是使用大型语言模型(LLM)作为推理引擎来确定要执行的操作以及这些操作的输入应该是什么,然后这些操作的结果可以反馈到代理中,代理将决定是否需要更多的操作,或者是否可以结束 例如:我们想要查询现在北京的…

企业知识管理平台重构数字时代知识体系与智能服务网络

内容概要 现代企业知识管理平台的演进呈现出全生命周期管理与智能服务网络构建的双重特征。通过四库体系&#xff08;知识采集库、加工库、应用库、评估库&#xff09;的协同运作&#xff0c;该系统实现了从知识沉淀、结构化处理到价值释放的完整闭环。其中&#xff0c;知识图…

(二)趣学设计模式 之 工厂方法模式!

目录 一、 啥是工厂方法模式&#xff1f;二、 为什么要用工厂方法模式&#xff1f;三、 工厂方法模式怎么实现&#xff1f;四、 工厂方法模式的应用场景五、 工厂方法模式的优点和缺点六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博…

详细介绍嵌入式硬件设计

嵌入式硬件设计详解 一、嵌入式硬件设计核心概念 嵌入式硬件设计是针对特定应用场景&#xff0c;将处理器、存储器、外设接口等电子元件集成到电路板上&#xff0c;实现特定功能的系统开发过程。其核心目标是 高可靠性、低功耗、小体积 和 成本优化。 二、设计流程与关键步骤 …

goredis常见基础命令

基本操作 //删除键 exists,err: rdb.Exists(ctx,"key").Result() if err!nil{panic(err) } if exists>0{err rdb.Del(ctx,"key").Err()if err!nil{panic(err)} }string类型 //设置一个键值对 //0表示没有过期时间 err:rdb.Set(ctx,"key1",…

微服务环境搭建架构介绍(附超清图解源代码)

微服务介绍 系统架构演变 随着互联网的发展&#xff0c;网站应用的规模也在不断的扩大&#xff0c;进而导致系统架构也在不断的进行变化。 从互联网早起到现在&#xff0c;系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布 式架构--->SOA架构…

Java-01-源码篇-04集合-05-ConcurrentHashMap(1)

1.1 加载因子 加载因子&#xff08;Load Factor&#xff09;是用来决定什么时候需要扩容的一个参数。具体来说&#xff0c;加载因子 当前元素数量 / 桶的数量&#xff0c;当某个桶的元素个数超过了 桶的数量 加载因子 时&#xff0c;就会触发扩容。 我们都知道 ConcurrentHas…

一文详解U盘启动Legacy/UEFI方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理&#xff0c;以及面对一些问题时的解决思路&#xff0c;故对以前的方法进行原理上的解释&#xff0c;主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导&#xff0c;我们可以看一下微pe制作的启动盘&#…

【多线程-第三天-NSOperation的练习-tableView异步下载网络图片-下载操作缓存池 Objective-C语言】

一、下载操作缓存池 1.下面我们来看操作缓存池,我们先演示一下问题,看看为什么要加这么一个操作缓存池,什么是操作缓存池,不用管呢,我们先来看啊,首先有什么问题, 看这个问题之前,我这儿写一个touch,点击屏幕的时候调用, 额,不能点击屏幕啊,因为现在屏幕点不着,我…