1# @ohos.identifier.oaid (广告标识服务)
2
3
4本模块提供开放匿名设备标识符(Open Anonymous Device Identifier, OAID,以下简称OAID)的获取能力。
5
6
7> **说明:**
8> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
9> 使用获取开放匿名设备标识符接口,需[向用户申请授权](../../security/AccessToken/request-user-authorization.md):ohos.permission.APP_TRACKING_CONSENT
10
11
12## 导入模块
13
14```
15import { identifier } from '@kit.AdsKit';
16```
17
18
19## identifier.getOAID
20
21getOAID(): Promise<string>
22
23获取开放匿名设备标识符(Open Anonymous Device Identifier, OAID),使用Promise异步返回。
24
25**需要权限:** ohos.permission.APP_TRACKING_CONSENT
26
27**系统能力:** SystemCapability.Advertising.OAID
28
29**返回值:**
30
31| 类型 | 说明 |
32| -------- | -------- |
33| Promise&lt;string&gt; | Promise对象。返回开放匿名设备标识符(Open&nbsp;Anonymous&nbsp;Device&nbsp;Identifier,&nbsp;OAID)。<br/>1.如应用已配置ohos.permission.APP_TRACKING_CONSENT权限,且跨应用关联访问权限为“允许”,则返回OAID。<br/>2.如应用已配置ohos.permission.APP_TRACKING_CONSENT权限,且跨应用关联访问权限为“禁止”,则返回00000000-0000-0000-0000-000000000000。<br/>3.如应用未配置ohos.permission.APP_TRACKING_CONSENT权限,则返回00000000-0000-0000-0000-000000000000。|
34
35**错误码:**
36
37以下错误码的详细介绍请参见[广告标识服务错误码参考](errorcode-oaid.md)。
38
39| 错误码ID | 错误信息 |
40| -------- | -------- |
41| 17300001 | System&nbsp;internal&nbsp;error. |
42
43**示例:**
44```
45import { identifier } from '@kit.AdsKit';
46import { hilog } from '@kit.PerformanceAnalysisKit';
47import { BusinessError } from '@kit.BasicServicesKit';
48
49try {
50  identifier.getOAID().then((data) => {
51    const oaid: string = data;
52    hilog.info(0x0000, 'testTag', '%{public}s', `succeeded in getting oaid by promise, oaid: ${oaid}`);
53  }).catch((err: BusinessError) => {
54    hilog.error(0x0000, 'testTag', '%{public}s',
55      `get oaid by promise failed, code: ${err.code}, message: ${err.message}`);
56  })
57} catch (err) {
58  hilog.error(0x0000, 'testTag', '%{public}s', `get oaid by promise catch error: ${err.code} ${err.message}`);
59}
60```
61
62
63## identifier.getOAID
64
65getOAID(callback: AsyncCallback&lt;string&gt;): void
66
67获取开放匿名设备标识符(Open Anonymous Device Identifier, OAID),使用callback异步回调。
68
69**需要权限:** ohos.permission.APP_TRACKING_CONSENT
70
71**系统能力:** SystemCapability.Advertising.OAID
72
73**参数:**
74
75
76| **参数**名 | **类型** | 必填 | 说明 |
77| -------- | -------- | -------- | -------- |
78| callback | AsyncCallback&lt;string&gt; | 是 | 异步获取开放匿名设备标识符(Open&nbsp;Anonymous&nbsp;Device&nbsp;Identifier,&nbsp;OAID)的回调。<br/>1.如应用已配置ohos.permission.APP_TRACKING_CONSENT权限,且跨应用关联访问权限为“允许”,则返回OAID。<br/>2.如应用已配置ohos.permission.APP_TRACKING_CONSENT权限,且跨应用关联访问权限为“禁止”,则返回00000000-0000-0000-0000-000000000000。<br/>3.如应用未配置ohos.permission.APP_TRACKING_CONSENT权限,则返回00000000-0000-0000-0000-000000000000。|
79
80
81**错误码:**
82
83
84以下错误码的详细介绍请参见[广告标识服务错误码参考](errorcode-oaid.md)。
85
86
87| 错误码ID | 错误信息 |
88| -------- | -------- |
89| 17300001 | System&nbsp;internal&nbsp;error. |
90
91
92**示例:**
93```
94import { identifier } from '@kit.AdsKit';
95import { hilog } from '@kit.PerformanceAnalysisKit';
96import { BusinessError } from '@kit.BasicServicesKit';
97
98try {
99  identifier.getOAID((err: BusinessError, data: string) => {
100    if (err.code) {
101      hilog.error(0x0000, 'testTag', '%{public}s', `get oaid by callback failed, error: ${err.code} ${err.message}`);
102    } else {
103      const oaid: string = data;
104      hilog.info(0x0000, 'testTag', '%{public}s', 'succeed in getting oaid by callback');
105    }
106   });
107} catch (err) {
108  hilog.error(0x0000, 'testTag', '%{public}s', `get oaid by callback catch error: ${err.code} ${err.message}`);
109}
110```
111