• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shengu
V2EX  ›  程序员

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

  •  
  •   shengu · Apr 13, 2022 · 4390 views
    This topic created in 1666 days ago, the information mentioned may be changed or developed.
    普通 APP 想要在 IOS 长期后台运行,只有通过静默 airplay 播放音乐,获取定位一类的才能实现。而 Posture Pal 这个 app 可以完美的在后台运行(播放其它 app 音乐之类的对它完全没影响),权限也没要定位,完全跳过了通常这些做法。抓破头也没想到它怎么办到的,太神奇了,求大佬指教。
    Supplement 1  ·  Apr 13, 2022
    麻烦那些说跟技术无关的话的朋友不要回复了。IOS 是有合规的途径后台的,只不过做不到这个这样完美和低能耗。这只是个单纯的技术问题探讨而已。需要后台运行并不等于要干坏事,而且以我对 ios 的理解,ios 的后台权限也干不了什么坏事,个人觉得已经限制非常严格了。我个人不过是一个想让 app 体验更好的开发者,从没搞过任何流氓软件,请不要再说这个话题了,我看到每个回复提醒都以为有大佬来解惑了,结果点进来一看却是这种没有关联的话题,挺打击人的,谢谢🙏
    catning
    catning
    Apr 13, 2022
    1
    看功能是获取 airpods 的 sensor 数据,是不是苹果在这个功能里有什么特殊的处理。
    https://developer.apple.com/documentation/coremotion/cmheadphonemotionmanager
    alfa
    alfa
    Apr 13, 2022 via iPhone
    3
    映像中是有权限做这个的
    dingwen07
    dingwen07
    Apr 13, 2022 via Android❤️2
    4
    求求了,手机电池真不是给你们这么用的。。。有下载任务在用户退出之后弹出个通知不好吗?
    Android 还能让用户选择每个软件的后台策略,iOS 软件这么搞是真的没办法,只能无力的看着这些软件在电池列表里名列前茅点一下之后无奈地看到“后台活动”、“音频”。
    shengu
    shengu
    OP
    Apr 13, 2022
    5
    @bbbb 它神奇的地方就是播放其它 app 的音频对它完全没影响。所以应该不是这个
    shengu
    shengu
    OP
    Apr 13, 2022
    6
    @eGlhb2Jhb2Jhbw 这个 api 我也看了,没发现特殊之处,所以它这个真的好神奇
    shengu
    shengu
    OP
    Apr 13, 2022
    7
    ios 后台管理很严格的
    ryh
    ryh
    Apr 13, 2022
    8
    普通 APP 想要在 IOS 长期后台运行? 你要做什么,没啥事长时间驻留后台是生怕用户不卸载你的 app 吗? 🤪
    xingyuc
    xingyuc
    Apr 13, 2022
    9
    @shengu 再严格打开 TB 、JD 等软件一段时间后也开始发热变卡掉电变快
    shengu
    shengu
    OP
    Apr 13, 2022
    10
    @ryh 你看这个 app 就知道了,有些 app 的确需要后台运行,比如一些运动类的 app ,告知用户,用户需要的话很正常。只是单纯的技术问题而已没必要联想到太远。目前是有手段,苹果也是允许合规的途径后台的,只不过这个特别的完美节能所以好奇而已。
    xtinput
    xtinput
    Apr 13, 2022
    11
    后台下载
    xtinput
    xtinput
    Apr 13, 2022
    12
    看应用描述,是通过蓝牙吧
    kera0a
    kera0a
    Apr 13, 2022 via iPhone
    13
    更正一个错误,后台播放音频并不一定会被其他 app 的播放打断的,可以一直持续不被打断
    xtinput
    xtinput
    Apr 13, 2022
    14
    找的了,运动与健身,它是通过本地通知播放声音的。运动与健身让它保持后台运行,通过通知不打断其它 app 的播放权限。你去搜索一下 iOS 播放音频的几种方式就知道了。AudioServices 的相关 API 。
    shengu
    shengu
    OP
    Apr 13, 2022
    15
    @kera0a 感谢指教,我是用 unity 调用的 oc 我自己测试是被打断了。请问哪种音频播放不会被打断呢?
    shengu
    shengu
    OP
    Apr 13, 2022
    16
    @xtinput 感谢,感谢!大佬能不能指点下运动与健身保持后台运行的 api 是用的哪个呀?我个人只知道 watch os 上面可以使用运动和健康保持在 apple watch 上面后台。ios 手机上面的没看到。
    DCELL
    DCELL
    Apr 13, 2022
    17
    楼主需要补习下 AVAudioSession ,多个声音输出是可以共存的。(你播放着音乐,导航声音不是正常在喊么?)
    其实 VOIP + AVAudioSession , 就可以做到永久保活,只要你能通过审核 (猜猜哪些 APP 有这种功能:软对讲机) 。
    shengu
    shengu
    OP
    Apr 13, 2022
    18
    @DCELL 好的,感谢。
    kera0a
    kera0a
    Apr 13, 2022 via iPhone
    19
    @shengu
    很久以前研究过,应该是设置那个 audio 播放混合模式,但我不确定,我身边没有电脑验证。

    但肯定可以,比如虎牙直播,开启后台播放后,去任何其他 app 播放声音和视频都不会中止虎牙后台播放
    shengu
    shengu
    OP
    Apr 13, 2022
    20
    @xtinput 找到了,我现在推测是 HKObserverQuery 这个,不过不知道 airpods 影响的是哪个 HealthKit 的数据。只有都试试了,大佬推测是监测的哪个数据呢?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5653 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 03:06 · PVG 11:06 · LAX 19:06 · JFK 22:06
    ♥ Do have faith in what you're doing.