在狀態列增加表徵圖(Android 6.0)

來源:互聯網
上載者:User

標籤:簡單   val   狀態   config   ima   usb   oid   start   null   

在Android 啟動之後,在SystemServer.java的run方法中,調用了StatusBarManagerService的構造方法,在StatusBarManagerService的構造方法中,載入了系統預置的所有icon,路徑在:/framework/base/core/res/res/values/config.xml中 mIcons.defineSlots(res.getStringArray(com.android.internal.R.array.config_statusBarIcons));。

如上述所示,在狀態列增加表徵圖,首先要在/framework/base/core/res/res/values/config.xml的config_statusBarIcons中加入自己的欄位,此處選擇的例子,是我在gm公司所做的Face Service表徵圖。

    <string-array name="config_statusBarIcons">           <item><xliff:g id="id">hotspot</xliff:g></item>       <item><xliff:g id="id">location</xliff:g></item>       <item><xliff:g id="id">bluetooth</xliff:g></item>       ......       <item><xliff:g id="id">secure</xliff:g></item>       <item><xliff:g id="id">clock</xliff:g></item>        <item><xliff:g id="id">face_verify</xliff:g></item>    </string-array>

然後在PhoneStatusBarPolicy中定義這個欄位:

private static final String SLOT_FACE_VERIFY = "face_verify";
代碼路徑:frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarPolicy.java

然後在該類的構造方法中,將表徵圖設定進去,此處可以預設不可見(根據互動)
mService.setIcon(SLOT_FACE_VERIFY, R.drawable.ic_statusbar_facecode, 0, null);mService.setIconVisibility(SLOT_FACE_VERIFY, false);

對於該表徵圖可見度的控制,是通過廣播判斷的。自然是針對於Face Service這一情況,識別service bind,發送開始識別廣播,onbind時,發送結束識別廣播。發送廣播的代碼就不寫了。

            else if (action.equals(ACTION_START_FACE_VERITY)) {                mService.setIconVisibility(SLOT_FACE_VERIFY, true);            } else if (action.equals(ACTION_STOP_FACE_VERITY)) {                mService.setIconVisibility(SLOT_FACE_VERIFY, false);            }

超級簡單的!當然,這個是只針對於系統表徵圖,對於訊號表徵圖等,在SignalClusterView.裡。

存下http://blog.csdn.net/yihongyuelan/article/details/7710584這篇好文章。雖然很老了,但是對於狀態列的理解,非常有收穫。

在狀態列增加表徵圖(Android 6.0)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.