[toc]
背景介绍
一般情况下,出于省电、权限、合理性等因素考虑,给人的感觉是很多奇怪的需求安卓可以实现,但是iOS就无法实现!今天要介绍的需求也有这种感觉,就是“当 APP 处于后台或锁屏状态时,依旧可以监听到摇一摇,进而触发某些功能,比如:语音播报”。
在产品经理提出此需求的一瞬间,仿佛周边的空气都凝固了,我也犹如五雷轰顶,愣在原地无法动弹。不由心想:“苹果爸爸怎么可能允许开发者实现这种功能!这得多费电啊!要是所有 APP 都这么做了,那还了得!” 与此同时,之前网上疯传、远近闻名的的需求--“做一个会根据手机壳颜色而改变主题颜色的APP”,清晰地浮现在脑海中,顿时一万只xx🐎从心中奔腾而过。此时,产品经理解释到,这是咱们好多视力障碍用户提的需求,他们经常锁屏或把 APP 退到后台,且因为视力不佳原因,导致重新找到 APP 并切到前台的操作很是麻烦,所以十分希望我们能实现这个功能。
在短暂的心理活动后,秉着“客户第一,产品🐂🍺”的原则,于是回复说:“这功能太少见了,我先在网上看看吧,要是有其他 APP 有类似的功能,麻烦跟我说我参考一下。”然后,就祭出了程序员利器--Google,输入“iOS 后台 摇一摇”,只搜索出来的一个思路:利用 CoreMotion 框架,监听加速计原始数据,然后在 APP 退到后台后,可以实现监听摇一摇的效果。然而,并没有完整的代码或 demo 。顿时,Talk is cheap, show me the code!
这句经典台词突然地出现在脑海中!也看到有人评论说 CoreMotion 的确可以实现跟系统摇一摇类似的效果,但是退到后台或锁屏后,没办法监听到摇一摇事件。
看到这条评论时,我不禁开始怀疑此功能是否真的可以被实现。
玩归玩,闹归闹,开始 code,不开玩笑。
接下来,开始自己的探索之旅。
本文 demo 链接为 OCDailyTests/BackgroundShakeTest,可自行下载,方便运行和验证。
探索过程
其他 APP 有没有类似功能
经过一番 Google,终于找到一款 APP 有类似功能::酷狗音乐 APP,对,就是那个在 PC 端一打开就会大喊 Hello KuGou!
的音乐软件对应的 APP,万万没想到,手机 APP 也是这样,一句Hello KuGou!
把我吓一跳。按如下步骤,在设置里打开此功能后,后台或锁屏时,摇一摇手机,可实现切歌的效果。
既然的确有 APP 实现了此功能,那就踏踏实实地探索