我有一个 VOIP 应用程序,它在每次执行呼叫时使用高优先级推送通知。推送通知是消息通知,因为我想自己处理交互。当我收到推送时,我启动了一个前台服务,该服务开始收听 SIP 通信,然后打开一个用户与之交互的自定义呼叫屏幕(活动)。对于 android PI ACTION_MANAGE_OVERLAY_PERMISSION
,即使从服务中我也可以随时打开呼叫屏幕。
我相信发生的事情是备用存储桶没有检测到用户与此流的交互,因为我的高优先级消息被限制了。从 FCM 诊断中,我可以看到推送通知会发送到手机,但不会广播到应用程序本身。
将手机置于此状态时,我也可以毫无问题地复制它:
./adb shell dumpsys battery unplug
./adb shell am set-inactive package.name.com true
./adb shell dumpsys deviceidle force-idle
如何确保打开的活动算作用户交互,或者如果这不可能,如何更改流程以使其工作但仍打开自定义呼叫屏幕活动?