设备唯一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说明
方法名称 参数 返回参数 说明
getUniqueDeviceId string 安卓调用顺序OAID->AndroidId->MacAddress->Serial->UUID。 iOS上使用UUID,keychain存储。鸿蒙上使用UUID,AssetMap存储
getDeviceId string 安卓返回AndroidId。 iOS返回identifier。鸿蒙返回ODID
getOAID 回调 安卓返回OAID。 鸿蒙返回AAID。iOS不支持
getImeiOrMeid boolean string 仅支持安卓,安卓根据参数true返回IMEI否则MEID,安卓10以下可获取,不包括10,安卓6以上申请用户权限
getMacAddress string 仅支持安卓,安卓11以下可用
getSerial string 仅支持安卓,安卓10以下可用
generateUUID string 无限制
插件试用
VUE代码调用示例
typescript 复制代码
<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. 仅支持鸿蒙。

用到的权限

安卓
xml 复制代码
<!-- 读取手机信息 -->
	<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

鸿蒙
typescript 复制代码
      {
        "name": "ohos.permission.STORE_PERSISTENT_DATA",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "always"
        },
      }
相关推荐
robotx2 小时前
安卓线程相关
android
RickeyBoy3 小时前
独立 App 配置阿里云 CDN 记录
ios
消失的旧时光-19433 小时前
Android 面试高频:JSON 文件、大数据存储与断电安全(从原理到工程实践)
android·面试·json
dalancon4 小时前
VSYNC 信号流程分析 (Android 14)
android
dalancon4 小时前
VSYNC 信号完整流程2
android
dalancon4 小时前
SurfaceFlinger 上帧后 releaseBuffer 完整流程分析
android
不爱吃糖的程序媛4 小时前
OpenHarmony 工程结构剖析
harmonyos
白玉cfc5 小时前
接口与API设计
ios·objective-c
用户69371750013845 小时前
不卷AI速度,我卷自己的从容——北京程序员手记
android·前端·人工智能
程序员Android5 小时前
Android 刷新一帧流程trace拆解
android