我可以在通知栏中为我的应用程序创建一个条目,但我想在状态栏中为我的应用程序创建一个图标,其中显示电池、wi-fi、蓝牙、时间图标。我已经对此进行了搜索,但得到了这么多-它不能仅从应用程序控制,在构建 android 时,在 android 源代码的 frameworks 目录中的某个位置,我们必须放置一些行来完成它,我不知道它是如何管理的。
1 回答
抱歉,我没有足够的声誉将此添加为评论,但是您是否看过类似的问题?您可以为所需的图标添加可绘制资源并在通知上设置标志,以便允许图标保留在状态栏中。FLAG_NO_CLEAR
并且 FLAG_ONGOING_EVENT
可以让您在状态栏中显示一个图标,如对这些问题的回答所描述的那样。
如果您有完整的 AOSP 结帐,我会建议您检查 StatusBarManager 服务。显示通知时,通知使用此服务内部的回调。还有一个活页夹界面,允许设置图标。
在 /frameworks/base/services/java/com/android/server/StatusBarManagerService.java 和 /frameworks/base/core/java/com/android/internal/statusbar/IStatusBarService.aidl
void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription);
void setIconVisibility(String slot, boolean visible);
在 /frameworks/base/core/res/res/values/config.xml
<item><xliff:g id="id">ime</xliff:g></item>
<item><xliff:g id="id">sync_failing</xliff:g></item>
<item><xliff:g id="id">sync_active</xliff:g></item>
<item><xliff:g id="id">gps</xliff:g></item>
<item><xliff:g id="id">bluetooth</xliff:g></item>
<item><xliff:g id="id">nfc</xliff:g></item>
<item><xliff:g id="id">tty</xliff:g></item>
<item><xliff:g id="id">speakerphone</xliff:g></item>
<item><xliff:g id="id">mute</xliff:g></item>
<item><xliff:g id="id">volume</xliff:g></item>
<item><xliff:g id="id">wifi</xliff:g></item>
<item><xliff:g id="id">cdma_eri</xliff:g></item>
<item><xliff:g id="id">data_connection</xliff:g></item>
<item><xliff:g id="id">phone_evdo_signal</xliff:g></item>
<item><xliff:g id="id">phone_signal</xliff:g></item>
<item><xliff:g id="id">battery</xliff:g></item>
<item><xliff:g id="id">alarm_clock</xliff:g></item>
<item><xliff:g id="id">secure</xliff:g></item>
<item><xliff:g id="id">clock</xliff:g></item>
这些是默认添加到状态栏的插槽的值
希望这可以帮助