V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shengu
V2EX  ›  程序员

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

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

    但肯定可以,比如虎牙直播,开启后台播放后,去任何其他 app 播放声音和视频都不会中止虎牙后台播放
    shengu
        20
    shengu  
    OP
       78 天前
    @xtinput 找到了,我现在推测是 HKObserverQuery 这个,不过不知道 airpods 影响的是哪个 HealthKit 的数据。只有都试试了,大佬推测是监测的哪个数据呢?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1144 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:16 · PVG 06:16 · LAX 15:16 · JFK 18:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.