你是否体验过android手机插入耳机后仍外放的尴尬

你是否体验过android手机插入耳机后仍外放的尴尬

ID:21293529

大小:817.78 KB

页数:6页

时间:2018-10-21

你是否体验过android手机插入耳机后仍外放的尴尬_第1页
你是否体验过android手机插入耳机后仍外放的尴尬_第2页
你是否体验过android手机插入耳机后仍外放的尴尬_第3页
你是否体验过android手机插入耳机后仍外放的尴尬_第4页
你是否体验过android手机插入耳机后仍外放的尴尬_第5页
资源描述:

《你是否体验过android手机插入耳机后仍外放的尴尬》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、你是否体验过Android手机插入耳机后仍外放的尴尬?文/腾讯优测吴宇焕近期有报道称,澳大利亚悉尼市新某大学的一名男生在课堂上看电影,不料耳机没有插好,变成了现场直播。。。如果你认为耳机没插好事件尚且可以hold住,那么接下来的问题会不会让你更加尴尬?当你在手机插上耳机准备看电影时,声音却从扬声器里响了出来。。。没想到藏得这么深,还是让耳机出卖了。。。容我静静,为避免此类尴尬事件再次发生,我特意对耳机在手机上的插拔原理研究了一番。感兴趣的朋友我们可以一起讨论。。。Android耳机插拔检测原理Android系统在耳机插入和拔出

2、的时候会发送广播,通过BroadcastReceiver监听"android.intent.action.HEADSET_PLUG"这个Intent来判断耳机是否插拔。Intent值说明state0代表拔出,1代表插入name字符串,代表headset的类型microphone1代表这个headset有麦克风,0则没有Android耳机插拔检测具体实现在Android4.0以上的版本,耳机插拔检测的源文件位于frameworks/base/services/java/com/android/server/WiredAccess

3、oryObserver.java;(4.1及以上是WiredAccessoryManager.java;在android4.0以前是HeadsetObserver.java)顾名思义,它主要是用来检测有线的设备连接状态。Android耳机插拔检测流程图我们重点来看一下WiredAccessoryObserverWiredAccessoryObserver继承自Observed(Android耳机插拔可以有两个机制实现:InputEvent和Event),从该文件的路径可以得知,这个类位于service目录,应该是在androi

4、d系统服务初始化的时候实例化的,在这个类的构造方法中,注册了一个广播接收器用来接收系统启动完毕的广播。WiredAccessoryObserver工作流程图在收到这个广播之后:先执行init()函数,在这个函数中判断要检测的设备是否已经处于连接状态(比如开机之前就已经插上),如果已经连接上就调用gestate立即向系统上报。然后调用observing函数监测文件节点路径是否有状态变化,这个函数位于他的父类Observed.java中。在之前建立好的监测中,如果kernel层有event事件发送上来则会去匹配这个路径字符串,如果

5、匹配成功会调用在WiredAccessoryObserver重载的eventful函数,从eventstring中解析出death,name和state的值,然后继续调用gestate进行处理。在gestate中会对设备的类型进行进一步的分析之后调用update上报,在update中,会往handler中发送一个消息,将耳机的状态报告给Audio系统。之后由AudioService在antivivisectionist函数中向系统广播耳机已经插入的ACTION_HEADSET_PLUG广播,同时会通知AudioPolicy做a

6、udio通路切换的工作。真机上的适配问题(1)在AweighT8833上播放音乐,在插入耳机之后耳机和扬声器都会有声音。gestate中需要进行update操作:通过反编译AweighT8833Framework层WiredAccessoryObserver,我们发现了问题的原因:HDMI状态改变时未进行update操作,也就是没有向系统进行设备连接状态的通知,导致了在插入耳机之后耳机和扬声器都会有声音。(2)在小米2S上如果想实现PTT语音消息的功能,播放语音时你可能这样做:使用Audio进行扬声器播放的时候,当插入耳机时声

7、音并未按预期的由耳机输出,而依旧使用的扬声器进行播放。如果您也是这样做的,那么我们建议您在这台机型上将MODE_IN_CALL与STREAM_MUSIC配对或者将Answerphone设置为false,从而让程序具有兼容性。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。