1# 重置OAID信息(仅对系统应用开放)
2
3## 场景介绍
4
5OAID会在下述场景中发生变化:
6- 用户恢复手机出厂设置。
7- 系统应用将bundleName配置到设备侧系统目录中,文件路径:etc/advertising/oaid/oaid_service_config.json,配置方式:用英文逗号隔开,添加到数组末尾。即可主动调用resetOAID()接口重置OAID。
8下面为系统应用开发者给出重置OAID的开发指导。
9
10## 接口说明
11
12| 接口名 | 描述 |
13| -------- | -------- |
14| [resetOAID()](../../reference/apis-ads-kit/js-apis-oaid-sys.md#identifierresetoaid): void | 重置OAID,此接口为系统接口。 |
15
16
17## 开发步骤
18
191. 在模块的module.json5文件中,申请广告跟踪权限[ohos.permission.APP_TRACKING_CONSENT](../../security/AccessToken/permissions-for-all-user.md#ohospermissionapp_tracking_consent)。示例代码如下所示:
20   ```ts
21    {
22     "module": {
23       "requestPermissions": [
24         {
25           "name": "ohos.permission.APP_TRACKING_CONSENT",
26           "reason": "$string:reason",
27           "usedScene": {
28             "abilities": [
29               "EntryFormAbility"
30             ],
31             "when": "inuse"
32           }
33         }
34       ]
35     }
36   }
37   ```
38
39   在应用启动时触发动态授权弹框,向用户请求授权。其中context的获取方式参见[各类Context的获取方式](../../application-models/application-context-stage.md)。示例代码如下所示:
40   ```ts
41   import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
42   import { BusinessError } from '@ohos.base';
43   import hilog from '@ohos.hilog';
44   import common from '@ohos.app.ability.common';
45
46   function requestOAIDTrackingConsentPermissions(context: common.Context): void {
47     // 进入页面时触发动态授权弹框,向用户请求授权广告跟踪权限
48     const atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
49      try {
50        atManager.requestPermissionsFromUser(context, ["ohos.permission.APP_TRACKING_CONSENT"]).then((data) => {
51          if (data.authResults[0] == 0) {
52            hilog.info(0x0000, 'testTag', '%{public}s', 'request permission success');
53          } else {
54            hilog.error(0x0000, 'testTag', '%{public}s', 'user rejected');
55          }
56        }).catch((err: BusinessError) => {
57          hilog.error(0x0000, 'testTag', '%{public}s', `request permission failed, error: ${err.code} ${err.message}`);
58        })
59      } catch (err) {
60        hilog.error(0x0000, 'testTag', '%{public}s', `catch err->${err.code}, ${err.message}`);
61      }
62    }
63   ```
64
652. 调用resetOAID方法重置OAID信息,此接口为系统接口。示例代码如下所示:
66   ```ts
67   import identifier from '@ohos.identifier.oaid';
68   import hilog from '@ohos.hilog';
69
70   // 重置OAID
71   try {
72     identifier.resetOAID();
73   } catch (err) {
74     hilog.error(0x0000, 'testTag', '%{public}s', `reset oaid catch error: ${err.code} ${err.message}`);
75   }
76   ```
77