HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity 我目前用 onAddForm(want: Want) 在卡片被添加的时候,在本地维护一个添加记录数组,记录 form_identity 和对应的卡片类型,因为我有很多不同的服务卡片,用于不同场景,然后这样在 APP 主页面打开的时候,也可以根据用户编辑的内容,即实刷新服务卡片里的显示效果。

但是我发现 onAddForm 在服务卡片处于窗口添加状态的时候,也会进行调用,这个时候还没有真正添加到用户的桌面上,而且因为会预加载的缘故,右侧两个待添加的组件也会调用 onAddForm,所以短时间内就连续调用了三次 onAddForm,然后用户不添加的组件到桌面的情况下,结束服务卡片添加操作的页面,又会连续触发三次 onRemoveForm,虽然不会出现问题,只是频繁进行了读写操作。

但还是想问有没有更好的方式 获取用户 已添加到桌面的服务卡片列表与对应的 form_identity,这样就不用自己维护服务卡片添加记录的数据了,或者在 onAddForm 或其它回调中区分此卡片现在处于添加预备状态,还是已经添加到了用户的手机桌面,这样就可以避免那些不必要的组件添加记录读写操作。


更多关于HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

更多关于HarmonyOS 鸿蒙Next 有没有办法获取用户已添加到桌面的服务卡片列表与对应的 form_identity的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个我之前文档看到过,不过里面 getFormsInfo 查到的就像是本 APP 能够给用户提供的服务卡片的清单,有哪些服务卡片能给用户使用,所以用户实际用没用这个服务卡片在 getFormsInfo 回调的数据里面都会包含。

但是我期望的接口是,用户到底使用了本APP哪些服务卡片放到手机桌面,以及到手机桌面他们实际对应的服务卡片ID。

暂时没有相应api可以获取桌面上此应用创建的所有服务卡片的formID,可以考虑提单提个需求,

在HarmonyOS 鸿蒙Next系统中,要获取用户已添加到桌面的服务卡片列表及对应的form_identity,可以通过以下方式进行:

HarmonyOS提供了特定的系统API和权限来获取与桌面服务卡片相关的信息。开发者需要确保应用已经获得了相应的权限,并且遵循鸿蒙系统的安全规范。

  1. 使用AbilityManager:鸿蒙系统的AbilityManager可以用来管理和查询Ability(包括服务卡片)的信息。通过调用相关的API,可以查询已经添加到桌面的服务卡片。

  2. 查询卡片信息:在获得Ability列表后,可以进一步查询每个卡片的详细信息,包括其form_identityform_identity是卡片的一个唯一标识符,用于区分不同的卡片实例。

  3. 权限要求:要获取这些信息,应用需要声明并请求相应的系统权限。权限的声明和使用需要遵循鸿蒙系统的权限管理模型。

请注意,直接访问和修改系统级数据(如桌面服务卡片列表)需要谨慎处理,并确保遵循鸿蒙系统的安全和隐私政策。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部