在展讯T606上完成基础OpenHarmony V3.2.2适配后,发现桌面拖拽图标竟然不行,屏幕会卡住,我去,这又是什么坑。

从产品搭建开始已经搞了快3月了,坑是真多,也有点累,加上这个现象看上去像是上层的问题,顶多到框架,不是我的菜,我也不想跟了,就交给一个框架侧同事帮忙看看。

随后提到udid获取不到,其实我是想把这个问题丢出去的。。。好吧,还是要我来,那就跟吧,都等着出版本。

这个问题其实是因为适配时没配置ohos.boot.sn导致的,刚刚适配谁会去配置序列号?主要原因就是拖拽图标这个行为会触发粘贴板服务(PasteboardService),而这个服务正常working依赖一个叫deviceprofile的sa(system ability),id是6001,而这个sa赖上sn了。

大致调用流程如下:

_________________________________________________________________
| PasteboardService (GetClipPlugin) -> GetDeviceProfileService |
|_______________________________________________________________|
__________________|_____________
| SystemAbilityManagerProxy |
|______________________________|
__________________|___________________________________
| SystemAbilityManager: CheckSystemAbility(6001) |
|____________________________________________________|

详细分析可以参考微信公众号原文:OHOS适配实战 | 图标拖拽卡屏分析与解决