首页»版块 更多荣耀手机 问题反馈 [BUG] MagicOS第三方应用预测性返回,在手势过程中不派发 ...

[BUG] MagicOS第三方应用预测性返回,在手势过程中不派发进度数据

[复制帖子标题和链接]

1561

星空ovo  LV4  发表于 昨天 16:53 吉林 来自:荣耀200 Pro 写真相机
【反馈】第三方应用预测性返回(Predictive Back)在手势过程中不派发进度数据(OnBackEvent.progress 恒为 0)
一、设备信息

机型:HONOR ELP-AN00
系统:MagicOS 10.0.0(ELP-AN00 10.0.0.175(C00E170R103P1))
基于 Android 16(API 36)

二、问题描述 第三方应用通过官方 API(OnBackInvokedCallback / PredictiveBackHandler)实现预测性返回时,手势开始和结束回调正常触发,但手势进行中(onBackProgressed)派发的 BackEvent 数据完全没有更新——progress 恒为 0,touchX/touchY 也停留在手势起点值。导致第三方应用无法跟随手指实现预测返回动画。

三、复现步骤

1.在开发者选项中开启「可预测式返回」
打开任意正确实现预测返回 API 的2.第三方应用(目标 SDK ≥ 34、android:enableOnBackInvokedCallback=”true”、注册 OnBackInvokedCallback)
3.在子页面从屏幕边缘执行返回手势,并保持手指滑动

四、预期行为

onBackStarted / onBackProgressed / onBackCompleted(或 onBackCancelled)依次触发
onBackProgressed 中 BackEvent.progress 随手指滑动从 0 平滑增长到 1,touchX/touchY 跟随手指实时更新

五、实际行为

回调确实触发(三次回调都在),但 onBackProgressed 派发的事件中:
progress 恒为 0
touchX/touchY 恒为手势起点值,不随手指移动更新
结果:页面完全无法跟手,预测返回动画失效

六、实测数据对比(同一 APK、同一 API,AOSP 原生模拟器 vs 荣耀
1.原生 Android 16 模拟器: START p=0.0 tx=997 → p=0.015 tx=910 → p=0.061 tx=784 → p=0.145 tx=658 → p=0.247 tx=550 → p=0.346 tx=487 → p=0.42 tx=478 → DONE/CANCELLED (progress 平滑增长,touchX 跟随手指,完全跟手)

2.荣耀 MagicOS 10: START p=0.0 tx=1209 → p=0.0 tx=1209 → p=0.0 tx=1209 → ... → DONE/CANCELLED (progress 恒 0,touchX 全程不变,数据完全不更新)

实测日志(第三方应用内采集):
# 原生模拟器
START  p=0.0    tx=63    →  DONE  p=0.56  tx=810   (progress 随手指增长)

# 荣耀 MagicOS
START  p=0.0    tx=1209  →  DONE  p=0.0   tx=1209  (progress/touchX 全程不变)


【技术结论】

应用侧实现已确认完全符合官方规范(enableOnBackInvokedCallback、targetSdk 37、OnBackInvokedCallback 注册均正确)
同一份代码在原生 Android 16 上预测返回完全正常,排除应用侧问题
荣耀 MagicOS 在系统框架派发 OnBackEvent 时未填充进度数据,疑似 framework 层对第三方应用未正确实现 BackEvent 的 progress/touchX 填充
产品型号ELP-AN00
出现频率总是
问题类型第三方软件类
应用名称
应用版本
系统版本ELP-AN00 10.0.0.175(C00E170R103P1)
评论1
荣耀小达人丶大橘 荣耀答答团  发表于 昨天 18:25 属地未知 来自:PC-VOC

楼主您好,关于您的问题大橘已经在后台给您留言了,辛苦您查看一下。
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表