android - 为什么华为手机的gsm信号强度总是0?其他手机没有这种情况

标签 android signal-strength

我有一个显示当前信号强度的应用程序,在很多手机上它都可以工作,但是当我在华为手机上测试时,它总是0,同时那个华为手机的信号条是满的。问题是什么?跟安卓版本有关系吗?跟权限有关系吗?我有这个:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

最佳答案

它并不总是零。您获得信号强度的方式是错误的。 在某些手机中,它可能是零可能是 api 的删除。

如果适合您,请尝试此代码。

     String gsmSignalStrength=null;
     String ssignal = asu.toString();
     String[] parts = ssignal.split(" ");
     int currentStrength = asu.getGsmSignalStrength();
                        if (currentStrength <= 0) {
                            gsmSignalStrength= String
                                    .valueOf(Integer.parseInt(parts[3]));
                        } else {
                            gsmSignalStrength= String.valueOf(-113 + 2 * asu.getGsmSignalStrength());
                        }
     Log.d(TAG,"Signal Strength : "+gsmSignalStrength);

这仅适用于 GSM ;

零件数组元素描述为

   parts[1] = GsmSignalStrength
   parts[3] = CDMADBM
   parts[8] = LteSignalStrength
   parts[9] = LteRsrp
   parts[10] = LteRsrq
   parts[13] = gsm|lte

所以你可以设置一些条件来从这个数组中提取值。

关于android - 为什么华为手机的gsm信号强度总是0?其他手机没有这种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33409009/

相关文章:

android - Facebook 授权 token 交换

android - 在 try-catch block 中显示 toast

Android - 显示动画状态栏图标

android - getGsmSignalStrength() 返回超出范围的值?

android - WIFI信号强度判断距离的最佳方法

android - Android 的 getGsmSignalStrength() 中哪些值(高或低)更好

android - android上的react-native-camera构建错误

android - 在 Jetpack Compose 中单击时如何禁用涟漪效应

Android,在设备处于 sleep 模式时获取强度信号(PhoneStateListener)

Android:如何获取所有可用网络运营商的 GSM 信号强度