目前状态栏图标有通知图标和系统图标
通知图标主要是指各应用发过来的通知,比如未接电话,截图,后台播放音乐等,系统图标主要有蓝牙,耳机,wifi,数据流量,时间和电池...
1,不显示通知图标,
在/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java中
public void updateNotificationIcons {
for (int i = 0; i < N; i++) {
NotificationData.Entry ent = activeNotifications.get(i);
+ final String pkg = ent.notification.getPackageName();
+ android.util.Log.d("
StatusBarIconController","pkg========"+pkg);
//比如如果包名不是收音机的,就不显示图标
+ if (!pkg.contains("com.android.fmradio")) {
+ continue;
}
if (notificationData.isAmbient(ent.key)
&& !NotificationData.showNotificationEvenIfUnprovisioned(ent.notification)) {
continue;
}
}
2.不显示系统图标,系统图标的显示是在以下文件,比如蓝牙,wifi,耳机等
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/
PhoneStatusBarPolicy.java
将不要显示图标,将setIconVisibility()改为false即可,比如,如果不要闹钟图标
private void updateAlarm() {
....
- - - mService.setIconVisibility(SLOT_ALARM_CLOCK, mCurrentUserSetup && hasAlarm);
+++ mService.setIconVisibility(SLOT_ALARM_CLOCK, false);
}
3,系统图标中比较特殊的时间和电池在
/frameworks/base/packages/SystemUI/res/layout/status_bar.xml
<com.android.systemui.statusbar.policy.Clock
android:id="@+id/clock"
android:textAppearance="@style/TextAppearance.StatusBar.Clock"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:singleLine="true"
android:paddingStart="7dp"
android:gravity="center_vertical|start"
+++ android:visibility="gone" //时间
/>
/frameworks/base/packages/SystemUI/res/layout/system_icons.xml
<com.android.systemui.BatteryMeterView android:id="@+id/battery"
android:layout_height="14.5dp"
android:layout_width="9.5dp"
+++ android:visibility="gone" 电池
android:layout_marginBottom="@dimen/battery_margin_bottom"/>