• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 重置OAID信息(仅对系统应用开放)
2
3<!--Kit: Ads Kit-->
4<!--Subsystem: Advertising-->
5<!--Owner: @SukiEvas-->
6<!--Designer: @zhansf1988-->
7<!--Tester: @hongmei_may-->
8<!--Adviser: @RayShih-->
9
10## 场景介绍
11
12OAID会在以下场景中发生变化:
13- 系统应用将`bundleName`配置到设备侧系统目录中,文件路径为`etc/advertising/oaid/oaid_service_config.json`。配置方式为:用英文逗号隔开,添加到数组末尾。配置完成后,可主动调用`resetOAID()`接口重置OAID。
14
15## 接口说明
16
17| 接口名 | 描述 |
18| -------- | -------- |
19| [resetOAID()](../../reference/apis-ads-kit/js-apis-oaid-sys.md#identifierresetoaid):&nbsp;void | 重置OAID,此接口为系统接口。 |
20
21
22## 开发步骤
23
241. 在模块的module.json5文件中,申请跨应用关联权限[ohos.permission.APP_TRACKING_CONSENT](../../security/AccessToken/permissions-for-all-user.md#ohospermissionapp_tracking_consent)。示例如下:
25    ```ts
26    {
27      "module": {
28        "requestPermissions": [
29          {
30            "name": "ohos.permission.APP_TRACKING_CONSENT",
31            "reason": "$string:reason",
32            "usedScene": {
33              "abilities": [
34                "EntryFormAbility"
35              ],
36              "when": "inuse"
37            }
38          }
39        ]
40      }
41    }
42    ```
43    应用启动时触发动态授权弹框,请求用户授权。获取context的方式参见[各类Context的获取方式](../../application-models/application-context-stage.md#context的获取方式)。示例代码如下:
44    ```ts
45    import { abilityAccessCtrl, PermissionRequestResult } from '@kit.AbilityKit';
46    import { hilog } from '@kit.PerformanceAnalysisKit';
47
48    async function requestAppTrackingConsentPermission(context: Context): Promise<void> {
49      let isPermissionGranted: boolean = false;
50      try {
51        const atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
52        const result: PermissionRequestResult =
53          await atManager.requestPermissionsFromUser(context, ['ohos.permission.APP_TRACKING_CONSENT']);
54        isPermissionGranted = result.authResults[0] === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED;
55      } catch (err) {
56        hilog.error(0x0000, 'testTag', `Failed to request permission. Code is ${err.code}, message is ${err.message}`);
57      }
58      if (isPermissionGranted) {
59        hilog.info(0x0000, 'testTag', 'Succeeded in requesting permission');
60      } else {
61        hilog.error(0x0000, 'testTag', 'Failed to request permission. User rejected');
62      }
63    }
64    ```
65
662. 调用resetOAID方法重置OAID信息。示例代码如下所示:
67    ```ts
68    import { identifier } from '@kit.AdsKit';
69    import { hilog } from '@kit.PerformanceAnalysisKit';
70
71    try {
72      identifier.resetOAID();
73    } catch (err) {
74      hilog.error(0x0000, 'testTag', `Failed to reset OAID. Code is ${err.code}, message is ${err.message}`);
75    }
76    ```