HyperOS3.0超级岛问题解决方法
HyperOS3.0的超级岛问题及解决方法
最近更新HyperOS3.0后,我的手机出现了一个奇怪的现象:灵动岛经常回退到Android原生样式,甚至原本OS2的焦点通知都消失了。只有部分系统场景(如音乐播放、省电/静音/勿扰开关)仍然有灵动岛。经过观察,我发现当我在教室使用WiFi网络时,灵动岛能够正常加载。由此怀疑网络方面的问题,可能小米的超级岛样式文件是在线加载的,与iOS平台不同。
为了进一步调查,我安装了Fiddler Classic对设备进行抓包,发现HyperOS会向hyperos.developer.xiaomi.com发送请求。我注意到,当我双击电源键开启手电筒时,HyperOS会向这个域名发送请求。由于这个域名没有缓存,请求失败时不会调用原来缓存的样式文件,而是直接放弃加载,因此我切换网络后灵动岛就消失了。
我使用电脑和手机ping了这个域名,结果显示是通的且延迟良好。我还在我的ADGuard服务器中手动指定了地址,但问题依旧存在。我怀疑是不是DNS服务器给我分配了错误的IP地址。由于我配置了DoH,所有的网络请求必须经过V2Ray,因此我能看到手机向哪些域名发出了网络请求。
尽管问题没有解决,但我发现每次连接教室WiFi时,通知栏会弹出大量的旧通知。我开始怀疑是不是我的手机没有连接上小米推送服务。我再次对小米推送服务相关域名进行ping,结果依然是解析正常且延迟良好。
我查阅了HyperOS开发者文档中关于MiPush的部分,发现小米推送服务客户端需要使用5222和443两个端口,如果在公司内网,需要联系IT部门把这两个端口开放。同时需要检查应用的联网是否会被一些手机安全助手阻止。特别需要注意的是,在MIUI系统上,长连接是由“小米服务框架”这个系统应用维护的,因此需要确保这个应用的联网并没有被阻止。
检查后发现小米服务框架的蜂窝联网权限被阻止了。这也解释了为什么移动网的WiFi下能出现灵动岛,而蜂窝网下即使网络连接正常也死活没有灵动岛的问题。我启用了联网权限后,灵动岛立即弹出,问题解决。
通过这个经历,我学到了在排查网络问题时,不能只关注网络连接本身,还需要考虑端口开放、服务权限等多个方面。希望我的经验能帮助到其他遇到类似问题的用户。
评论已关闭