Android 为什么在华为手机中gsmSignalStrength始终为0?其他手机并非如此
我有一个显示当前信号强度的应用程序,在很多手机上它都能正常工作,但当我在华为手机上测试它时,它总是0,同时该华为手机上的信号条都满了。有什么问题?它和安卓版本有关吗?它与权限有关吗?我有这个:Android 为什么在华为手机中gsmSignalStrength始终为0?其他手机并非如此,android,signal-strength,Android,Signal Strength,我有一个显示当前信号强度的应用程序,在很多手机上它都能正常工作,但当我在华为手机上测试它时,它总是0,同时该华为手机上的信号条都满了。有什么问题?它和安卓版本有关吗?它与权限有关吗?我有这个: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 它并不总是零。你得到信号强度的方式是错误的。 在一些手机中,它可能是零,也可能是api的删除 只要试试这个代码,如果它适合你 String
<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);
因此,您可以设置一些条件从该数组中提取值。Hi!我自己也在尝试同样的事情。有时候GsmSignalStrength是0,有时候不是。你知道为什么吗?我注意到,当信号强度不是0时,两个字段“mWcdmaEcio”总是255,字段“mWcdmaRscp”总是0。他们修改了信号强度API。最好阅读信号强度监听器的
toString()
方法。答案不错,Madhukar,这对我帮助很大。你找到答案了吗?我正在使用正确的方法获得信号强度,但它始终为0 ASU。
parts[1] = GsmSignalStrength
parts[3] = CDMADBM
parts[8] = LteSignalStrength
parts[9] = LteRsrp
parts[10] = LteRsrq
parts[13] = gsm|lte