BugFix 2:状态栏显示耳机插拔图标

StatusBarPolicy.java是状态栏相关图标显示源码.为了能在状态栏显示插拔耳机图标,需要到该文件下注册插拔耳机事件addAction(Intent.ACTION_HEADSET_PLUG).当有插拔耳机时,会收到该广播消息,则可以在BroadcastReceiver里处理action.equals(Intent.ACTION_HEADSET_PLUG)的情况.

要显示图标可用Notification方法.Qualcomm平台是这样做的.在TI OMAP平台上有StatusBarManager这个类的方法来设置状态栏图标.二者的区别在与Notification的图标一般显示在Statusbar的左侧,而把图标作为Statusbar的slot 图标会显示在Statusbar的右侧.

OMAP上直接调用setIcon, setIconVisibility等方法.

setIcon方法中的第一个参数是状态栏图标的一个标识字符.这个标识需要在xml配置文件中预先定义这个标识.

OMAP上其定义在frameworks\base\core\res\res\values\config.xml 

<string-array name="config_statusBarIcons">

这个字段中.

Qualcomm msm 其定义在frameworks\base\core\res\res\values\arrays.xml

<string-array name="status_bar_icon_order" >

这个字段中.Qualcomm上认为把插拔耳机当作Notification来做使图标显示在左侧.

可见不同平台还有稍许差别,所以在平台移植的时候也要注意这些小问题.

setIcon方法中的第二个参数是状态栏图标的图片,可以把我们需要的图片添加到对应的 frameworks\base\core\res\res\drawable下即可.

本文出自 “rnmichelle” 博客,请务必保留此出处http://rnmichelle.blog.51cto.com/2729211/733677

你可能感兴趣的:(BugFix 2:状态栏显示耳机插拔图标)