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): 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 ```