系统定制需要修改一下状态栏,如果想要刷机的话,网上资料挺多的,但是修改源代码的资料不多,在2.2中,源代码在frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java和frameworks/base/services/java/com/android/server/status/StatusBarService.java中,在2.3中,源代码在:frameworks/base/package里面的SystemUI里面。

在StatusBarPolicy中,添加图标的代码如下(404行):

[java] view plain copy
  1. publicStatusBarPolicy(Contextcontext){
  2. mContext=context;
  3. mService=(StatusBarManager)context.getSystemService(Context.STATUS_BAR_SERVICE);
  4. mSignalStrength=newSignalStrength();
  5. mBatteryStats=BatteryStatsService.getService();
  6. //storage
  7. mStorageManager=(StorageManager)context.getSystemService(Context.STORAGE_SERVICE);
  8. mStorageManager.registerListener(
  9. newcom.android.systemui.usb.StorageNotification(context));
  10. //battery
  11. mService.setIcon("battery",com.android.internal.R.drawable.stat_sys_battery_unknown,0);
  12. //phone_signal
  13. mPhone=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
  14. mPhoneSignalIconId=R.drawable.stat_sys_signal_null;
  15. mService.setIcon("phone_signal",mPhoneSignalIconId,0);
  16. mService.setIconVisibility("phone_signal",false);
  17. //registerforphonestatenotifications.
  18. ((TelephonyManager)mContext.getSystemService(Context.TELEPHONY_SERVICE))
  19. .listen(mPhoneStateListener,
  20. PhoneStateListener.LISTEN_SERVICE_STATE
  21. |PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
  22. |PhoneStateListener.LISTEN_CALL_STATE
  23. |PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
  24. |PhoneStateListener.LISTEN_DATA_ACTIVITY);
  25. //data_connection
  26. mService.setIcon("data_connection",R.drawable.stat_sys_data_connected_g,0);
  27. mService.setIconVisibility("data_connection",false);
  28. //wifi
  29. mService.setIcon("wifi",sWifiSignalImages[0][0],0);
  30. mService.setIconVisibility("wifi",false);
  31. //wifiwillgetupdatedbythestickyintents
  32. //TTYstatus
  33. mService.setIcon("tty",R.drawable.stat_sys_tty_mode,0);
  34. mService.setIconVisibility("tty",false);
  35. //CdmaRoamingIndicator,ERI
  36. mService.setIcon("cdma_eri",R.drawable.stat_sys_roaming_cdma_0,0);
  37. mService.setIconVisibility("cdma_eri",false);
  38. //bluetoothstatus
  39. mService.setIcon("bluetooth",R.drawable.stat_sys_data_bluetooth,0);
  40. BluetoothAdapteradapter=BluetoothAdapter.getDefaultAdapter();
  41. if(adapter!=null){
  42. mBluetoothEnabled=adapter.isEnabled();
  43. }else{
  44. mBluetoothEnabled=false;
  45. }
  46. mBluetoothA2dpConnected=false;
  47. mBluetoothHeadsetState=BluetoothHeadset.STATE_DISCONNECTED;
  48. mBluetoothPbapState=BluetoothPbap.STATE_DISCONNECTED;
  49. mService.setIconVisibility("bluetooth",mBluetoothEnabled);
  50. //Gpsstatus
  51. mService.setIcon("gps",R.drawable.stat_sys_gps_acquiring_anim,0);
  52. mService.setIconVisibility("gps",false);
  53. //Alarmclock
  54. mService.setIcon("alarm_clock",R.drawable.stat_notify_alarm,0);
  55. mService.setIconVisibility("alarm_clock",false);
  56. //Syncstate
  57. mService.setIcon("sync_active",com.android.internal.R.drawable.stat_notify_sync_anim0,0);
  58. mService.setIcon("sync_failing",com.android.internal.R.drawable.stat_notify_sync_error,0);
  59. mService.setIconVisibility("sync_active",false);
  60. mService.setIconVisibility("sync_failing",false);
  61. //volume
  62. mService.setIcon("volume",R.drawable.stat_sys_ringer_silent,0);
  63. mService.setIconVisibility("volume",false);
  64. updateVolume();
  65. IntentFilterfilter=newIntentFilter();
  66. //RegisterforIntentbroadcastsfor...
  67. filter.addAction(Intent.ACTION_BATTERY_CHANGED);
  68. filter.addAction(Intent.ACTION_BATTERY_LOW);
  69. filter.addAction(Intent.ACTION_BATTERY_OKAY);
  70. filter.addAction(Intent.ACTION_POWER_CONNECTED);
  71. filter.addAction(Intent.ACTION_ALARM_CHANGED);
  72. filter.addAction(Intent.ACTION_SYNC_STATE_CHANGED);
  73. filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
  74. filter.addAction(AudioManager.VIBRATE_SETTING_CHANGED_ACTION);
  75. filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
  76. filter.addAction(BluetoothHeadset.ACTION_STATE_CHANGED);
  77. filter.addAction(BluetoothA2dp.ACTION_SINK_STATE_CHANGED);
  78. filter.addAction(BluetoothPbap.PBAP_STATE_CHANGED_ACTION);
  79. filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
  80. filter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
  81. filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
  82. filter.addAction(WifiManager.RSSI_CHANGED_ACTION);
  83. filter.addAction(LocationManager.GPS_ENABLED_CHANGE_ACTION);
  84. filter.addAction(LocationManager.GPS_FIX_CHANGE_ACTION);
  85. filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
  86. filter.addAction(TtyIntent.TTY_ENABLED_CHANGE_ACTION);
  87. filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
  88. filter.addAction(ConnectivityManager.INET_CONDITION_ACTION);
  89. mContext.registerReceiver(mIntentReceiver,filter,null,mHandler);
  90. //loadconfigtodetermineiftodistinguishHspadataicon
  91. try{
  92. mHspaDataDistinguishable=mContext.getResources().getBoolean(
  93. R.bool.config_hspa_data_distinguishable);
  94. }catch(Exceptione){
  95. mHspaDataDistinguishable=false;
  96. }
  97. }

下面简单说一下用法,获取StatusBarManager:

private final StatusBarManager mService;

[java] view plain copy
  1. mService=(StatusBarManager)context.getSystemService(Context.STATUS_BAR_SERVICE);
  2. <spanstyle="font-size:14px;">下面是获得图标:获取以后处理</span>
  3. //phone_signal
  4. mPhone=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
  5. mPhoneSignalIconId=R.drawable.stat_sys_signal_null;
  6. mService.setIcon("phone_signal",mPhoneSignalIconId,0);
  7. mService.setIconVisibility("phone_signal",false);


在这里,我把这个信号图标给隐藏了,所以当你编译编译源码,生成自己SDK,然后新建一个模拟器,就会发现信号图标已经没有了,如果你想改变布局,或者更改图标,在res里面找一下相应的文件,今天就写到这,其余信息,继续补充。

更多相关文章

  1. android图标大小规范
  2. 用qt编译Android应用(windows和Linux)
  3. Android(安卓)2.3 GingerBread for VirtualBox x86编译指南
  4. AS插件之Android(安卓)Drawable Importer
  5. Windos下Android(ADT Bundle)配置NDK的两种方法------ADT、Cygwin
  6. Android(安卓)Hook框架Xposed详解:从源代码分析到开发指南
  7. Android(安卓)ART dex2oat 浅析
  8. Android(安卓)重新编译资源文件
  9. Ubuntu 下 Android(安卓)反编译 apk

随机推荐

  1. android加载框效果《IT蓝豹》
  2. listview原生态属性
  3. Android(安卓)Gradle Plugin指南(一)——简
  4. Android(安卓)SDK Android(安卓)NDK Andr
  5. Android(安卓)Fresco属性大全,中文说明
  6. Android(安卓)Gradle Plugin指南(一)——简
  7. Android剖析和运行机制
  8. Android开发从入门到精通
  9. 通过ant脚本,编译打包android工程
  10. Android(安卓)+ eclipse +ADT安装完全教