当前位置: 首页 > news >正文

设备唯一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分别是什么,如何获取设备的唯一标识?

相关文章:

  • 【ROS2】【ROS2】RViz2源码分析(八):Display中订阅ROS2消息(使用Qt信号和槽传递ROS2消息)
  • Python递归函数
  • 设计模式教程:责任链模式(Chain of Responsibility Pattern)
  • 基于cppzmq和MsgPack封装的Publisher Subscriber - 发布订阅模式
  • 如何组织和管理JavaScript文件:最佳实践与策略
  • MATLAB进阶之路:数据导入与处理
  • Java File 类
  • rman 备份恢复1
  • spring日志
  • OmniParser V2 和 OmniTool 让 AI 来控制 Windows 设备
  • c语言基础第12节《函数的调用》
  • 怎么用cURL库对接智能语音播报设备
  • ShenNiusModularity项目源码学习(10:ShenNius.FileManagement项目分析)
  • Java语法-集合
  • Java——继承
  • 【OS安装与使用】part5-ubuntu22.04基于conda安装pytorch+tensorflow
  • 深入解析 sudo -l 命令的输出内容
  • pdf预览在vue项目中的使用兼容ie浏览器
  • 面对STM32的庞大体系,如何避免迷失在细节中?
  • [python]windows上安装yolov12环境
  • 宁德时代与广汽等五车企发布10款巧克力换电新车型:年内将完成30城1000站计划
  • 一夜跌去200美元,黄金巨震冲上热搜!涨势已近尾声?
  • 上海常务副市长:持续提升跨境投融资便利化水平,稳步扩大金融领域的制度型开放
  • 最高法典型案例:学生在校受伤,学校并非必然担责
  • 大卫·第艾维瑞谈历史学与社会理论②丨马克斯·韦伯与历史学研究
  • 致敬劳动者!今年拟表彰2426名全国劳动模范和先进工作者