找了一找,显示信号对应的图片是:
stat_sys_signal_null.png
查找一下这个图片在其它地方有没有:
root@i3:~# cd frameworks/
root@i3:frameworks# find -name stat_sys_signal_null.png
./base/docs/html/images/icon_design/stat_sys_signal_null.png
./base/core/res/res/drawable-mdpi/stat_sys_signal_null.png
./base/core/res/res/drawable-hdpi/stat_sys_signal_null.png
再找找哪里用到了这个图片:
root@i3:frameworks# grep -r stat_sys_signal_null ./
./base/services/java/com/android/server/status/StatusBarPolicy.java: null, com.android.internal.R.drawable.stat_sys_signal_null, 0, 0);
./base/services/java/com/android/server/status/StatusBarPolicy.java: mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_null;
找到了两处,其实是同一个文件,打开来看看吧:
private final void updateSignalStrength() {
int iconLevel = -1;
int[] iconList;
// Display signal strength while in "emergency calls only" mode
if (!hasService() && !mServiceState.isEmergencyOnly()) {
//Slog.d(TAG, "updateSignalStrength: no service");
if (Settings.System.getInt(mContext.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) == 1) {
mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_flightmode;
} else if( mModemPowerState == ModemPowerTracker.PowerState.TURNED_ON ) {
mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_init;
} else {
mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_null;
}
mService.updateIcon(mPhoneIcon, mPhoneData, null);
return;
}
这处代码看起来像是3G信号。
// phone_signal
mPhone = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
mPhoneData = IconData.makeIcon("phone_signal",
null, com.android.internal.R.drawable.stat_sys_signal_null, 0, 0);
mPhoneIcon = service.addIcon(mPhoneData, null);
这个应该是电话信号了。