HarmonyOS鸿蒙Next中手机系统设置的跨应用关联中“要求应用请求关联”,如何使用代码控制开启关闭

HarmonyOS鸿蒙Next中手机系统设置的跨应用关联中“要求应用请求关联”,如何使用代码控制开启关闭 【问题描述】:鸿蒙APP需要获取OAID用于平台统计投放回流数据,如用户激活和注册等。如果关闭‘要求应用请求关联’,不会出现弹窗,默认授予应用权限,并且返回OAID。如果开启,获取OAID的方法会自动弹出 “要求应用请求关联”的系统弹窗,点击允许,返回OAID,点击不允许,不会返回,这种弹窗可能绝大部分用户是点不允许。如何在应用中使用代码控制红框中的开启关闭?

【问题现象】: cke_6093.png cke_19130.png

【版本信息】:DevEco Studio 6.0.1.260 ,nova 13,6.0.0.125 SP12

【复现代码】:不涉及

【尝试解决方案】:不涉及


更多关于HarmonyOS鸿蒙Next中手机系统设置的跨应用关联中“要求应用请求关联”,如何使用代码控制开启关闭的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

开发者您好,当应用需要访问用户的隐私信息或使用敏感系统能力时,如拦截键盘输入事件,应向用户申请授权。这些权限属于manual_settings权限。

当应用申请manual_settings权限时,需完成以下步骤:

  1. 在应用市场(AGC)侧申请Profile文件并在Profile内添加ACL权限。申请Profile的操作需在应用市场(AGC)完成,详细步骤请参阅申请发布Profile
  2. 在module.json5配置文件中声明权限
  3. 运行应用时,用户触发访问目标对象时应检查用户的授权结果,若未授权,引导用户跳转到系统应用“设置”中进行授权。
  4. 检查用户的授权结果,确认用户已授权后,再进行下一步操作。

具体可参考官网文档:手动设置授权

在开发步骤第3点中,在“设置”中的路径如下:

路径:“设置 > 隐私与安全 > 跨应用关联”。

然后让用户去启用和关闭。您看是否可解决您的问题?

更多关于HarmonyOS鸿蒙Next中手机系统设置的跨应用关联中“要求应用请求关联”,如何使用代码控制开启关闭的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


方案可以暂时规避问题,是否可以根据我们的场景优化一下

【使用场景】: 鸿蒙APP需要获取OAID用于平台统计投放回流数据,如用户激活和注册等

【问题现象】:获取OAID的方法会自动弹出 “要求应用请求关联”的系统弹窗,用户拒绝的情况下获取OAID为空,但是这种弹窗用户主观就会去点击拒绝,所以获取的投放数据也不准确

【带来的影响】:首先打开APP就弹窗获取权限对用户来说是体验感特别不好的,其次这个“要求应用请求关联”对于大部分用户来说会不清楚目的而点击拒绝,导致获取OAID为空,回流采集数据的功能就没有达到目的,

尊敬的开发者,您好!您的问题已受理,请您耐心等待,感谢您的理解与支持!

在HarmonyOS Next中,通过wantAgent模块的WantAgentInfo配置operationTypeWantAgentConstant.OperationType.START_SETTINGS,并设置extraInfo中的settings.extra.REQUEST_ASSOCIATEtruefalse来控制开启或关闭跨应用关联的“要求应用请求关联”功能。

在HarmonyOS Next中,您提到的“要求应用请求关联”开关属于系统级隐私设置,应用无法通过代码直接控制其开启或关闭。该开关的设计初衷是将控制权完全交给用户,由用户决定是否允许应用请求跨应用关联(例如获取OAID等设备标识符)。

关于获取OAID,正确的做法是遵循HarmonyOS的隐私规范,在需要时通过标准API(例如@ohos.identifier模块的相关接口)去获取。当用户开启了“要求应用请求关联”开关时,系统会在您调用相关API时自动弹出授权弹窗。您无法绕过或预先控制这个系统弹窗的显示。

核心要点:

  1. 无代码控制开关:应用没有权限以编程方式修改此系统设置。
  2. 遵循API调用流程:您的应用应正常调用获取设备标识符的API。是否弹窗、用户是否授权,均由系统根据该开关状态和用户操作决定。
  3. 用户体验建议:如果获取OAID对您的应用功能(如反作弊、统计归因)至关重要,建议在用户首次启动或相关功能触发前,通过应用内的用户界面(UI)向用户清晰说明需要此权限的原因(例如“用于保障账号安全、识别异常设备”),引导用户理解并在系统弹窗出现时点击“允许”。这可以提高用户授权率,但最终决定权仍在用户手中。

因此,您需要调整策略,专注于在应用内做好用户引导和说明,而不是试图控制该系统开关。

回到顶部