有没有 IOS 开发的大佬,发现一个 IOS 完美后台运行的 APP,怎么办到的。

2022 年 4 月 13 日
 shengu
普通 APP 想要在 IOS 长期后台运行,只有通过静默 airplay 播放音乐,获取定位一类的才能实现。而 Posture Pal 这个 app 可以完美的在后台运行(播放其它 app 音乐之类的对它完全没影响),权限也没要定位,完全跳过了通常这些做法。抓破头也没想到它怎么办到的,太神奇了,求大佬指教。
4191 次点击
所在节点    程序员
20 条回复
catning
2022 年 4 月 13 日
看功能是获取 airpods 的 sensor 数据,是不是苹果在这个功能里有什么特殊的处理。
https://developer.apple.com/documentation/coremotion/cmheadphonemotionmanager
bbbb
2022 年 4 月 13 日
alfa
2022 年 4 月 13 日
映像中是有权限做这个的
dingwen07
2022 年 4 月 13 日
求求了,手机电池真不是给你们这么用的。。。有下载任务在用户退出之后弹出个通知不好吗?
Android 还能让用户选择每个软件的后台策略,iOS 软件这么搞是真的没办法,只能无力的看着这些软件在电池列表里名列前茅点一下之后无奈地看到“后台活动”、“音频”。
shengu
2022 年 4 月 13 日
@bbbb 它神奇的地方就是播放其它 app 的音频对它完全没影响。所以应该不是这个
shengu
2022 年 4 月 13 日
@eGlhb2Jhb2Jhbw 这个 api 我也看了,没发现特殊之处,所以它这个真的好神奇
shengu
2022 年 4 月 13 日
ios 后台管理很严格的
ryh
2022 年 4 月 13 日
普通 APP 想要在 IOS 长期后台运行? 你要做什么,没啥事长时间驻留后台是生怕用户不卸载你的 app 吗? 🤪
xingyuc
2022 年 4 月 13 日
@shengu 再严格打开 TB 、JD 等软件一段时间后也开始发热变卡掉电变快
shengu
2022 年 4 月 13 日
@ryh 你看这个 app 就知道了,有些 app 的确需要后台运行,比如一些运动类的 app ,告知用户,用户需要的话很正常。只是单纯的技术问题而已没必要联想到太远。目前是有手段,苹果也是允许合规的途径后台的,只不过这个特别的完美节能所以好奇而已。
xtinput
2022 年 4 月 13 日
后台下载
xtinput
2022 年 4 月 13 日
看应用描述,是通过蓝牙吧
kera0a
2022 年 4 月 13 日
更正一个错误,后台播放音频并不一定会被其他 app 的播放打断的,可以一直持续不被打断
xtinput
2022 年 4 月 13 日
找的了,运动与健身,它是通过本地通知播放声音的。运动与健身让它保持后台运行,通过通知不打断其它 app 的播放权限。你去搜索一下 iOS 播放音频的几种方式就知道了。AudioServices 的相关 API 。
shengu
2022 年 4 月 13 日
@kera0a 感谢指教,我是用 unity 调用的 oc 我自己测试是被打断了。请问哪种音频播放不会被打断呢?
shengu
2022 年 4 月 13 日
@xtinput 感谢,感谢!大佬能不能指点下运动与健身保持后台运行的 api 是用的哪个呀?我个人只知道 watch os 上面可以使用运动和健康保持在 apple watch 上面后台。ios 手机上面的没看到。
DCELL
2022 年 4 月 13 日
楼主需要补习下 AVAudioSession ,多个声音输出是可以共存的。(你播放着音乐,导航声音不是正常在喊么?)
其实 VOIP + AVAudioSession , 就可以做到永久保活,只要你能通过审核 (猜猜哪些 APP 有这种功能:软对讲机) 。
shengu
2022 年 4 月 13 日
@DCELL 好的,感谢。
kera0a
2022 年 4 月 13 日
@shengu
很久以前研究过,应该是设置那个 audio 播放混合模式,但我不确定,我身边没有电脑验证。

但肯定可以,比如虎牙直播,开启后台播放后,去任何其他 app 播放声音和视频都不会中止虎牙后台播放
shengu
2022 年 4 月 13 日
@xtinput 找到了,我现在推测是 HKObserverQuery 这个,不过不知道 airpods 影响的是哪个 HealthKit 的数据。只有都试试了,大佬推测是监测的哪个数据呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/846715

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX