Android 信号强度显示图标修改

转自:http://my.oschina.net/zhang3/blog/16100

找了一找,显示信号对应的图片是:

stat_sys_signal_null.png

查找一下这个图片在其它地方有没有:

1 root@i3:~# cd frameworks/
2 root@i3:frameworks# find -name stat_sys_signal_null.png
3 ./base/docs/html/images/icon_design/stat_sys_signal_null.png
4 ./base/core/res/res/drawable-mdpi/stat_sys_signal_null.png
5 ./base/core/res/res/drawable-hdpi/stat_sys_signal_null.png

再找找哪里用到了这个图片:

1 root@i3:frameworks# grep -r stat_sys_signal_null ./
2 ./base/services/java/com/android/server/status/StatusBarPolicy.java:                null, com.android.internal.R.drawable.stat_sys_signal_null, 0, 0);
3 ./base/services/java/com/android/server/status/StatusBarPolicy.java:                mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_null;

找到了两处,其实是同一个文件,打开来看看吧:

01 private final void updateSignalStrength() {
02     int iconLevel = -1;
03     int[] iconList;
04  
05     // Display signal strength while in "emergency calls only" mode
06     if (!hasService() && !mServiceState.isEmergencyOnly()) {
07         //Slog.d(TAG, "updateSignalStrength: no service");
08         if (Settings.System.getInt(mContext.getContentResolver(),
09                 Settings.System.AIRPLANE_MODE_ON, 0) == 1) {
10             mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_flightmode;
11         else if( mModemPowerState == ModemPowerTracker.PowerState.TURNED_ON ) {
12             mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_init;
13         else {
14             mPhoneData.iconId = com.android.internal.R.drawable.stat_sys_signal_null;
15         }
16         mService.updateIcon(mPhoneIcon, mPhoneData, null);
17         return;
18     }

这处代码看起来像是3G信号。

1 // phone_signal
2 mPhone = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
3 mPhoneData = IconData.makeIcon("phone_signal",
4         null, com.android.internal.R.drawable.stat_sys_signal_null, 00);
5 mPhoneIcon = service.addIcon(mPhoneData, null);

这个应该是电话信号了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中设计界面显示信号强度的代码,可以通过以下步骤实现: 1. 在XML布局文件中添加一个TextView控件用于显示信号强度: ```xml <TextView android:id="@+id/signalStrengthTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Signal Strength: " android:textSize="16sp" /> ``` 2. 在Java代码中获取并更新信号强度的值,并将其显示在TextView上: ```java import android.telephony.PhoneStateListener; import android.telephony.SignalStrength; import android.telephony.TelephonyManager; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView signalStrengthTextView; private TelephonyManager telephonyManager; private PhoneStateListener phoneStateListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); signalStrengthTextView = findViewById(R.id.signalStrengthTextView); telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); phoneStateListener = new PhoneStateListener() { @Override public void onSignalStrengthsChanged(SignalStrength signalStrength) { super.onSignalStrengthsChanged(signalStrength); int signalDbm = signalStrength.getDbm(); signalStrengthTextView.setText("Signal Strength: " + signalDbm + " dBm"); } }; telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); } @Override protected void onDestroy() { super.onDestroy(); telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE); } } ``` 3. 确保在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ``` 以上代码通过使用TelephonyManager和PhoneStateListener来监听信号强度的变化,并将其更新到TextView上显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值