- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在检查 CDMA 设备的信号强度。任何人都可以指定 signalStrength.getCdmaDbm()
返回的范围吗?最低是 -120,但对于完整的信号强度,该值是多少?我得到的最高值是 -52。
最佳答案
好吧,我不确定这是否是您正在寻找的内容,但在查看 android 源代码中的 SignalStrength.java 文件后,我注意到一些代码具有 cdma dbm 和 ecio 级别的一堆级别。
DBM
level 4 >= -75
level 3 >= -85
level 2 >= -95
level 1 >= -100
Ecio
level 4 >= -90
level 3 >= -110
level 2 >= -130
level 1 >= -150
level是两者中最低的
actualLevel = (levelDbm < levelEcio) ? levelDbm : levelEcio;
但我注意到这与通知中显示的实际栏不相关。如果在 3G 中,则忽略此级别并使用信噪比。
signalStrength.getEvdoSnr() // value is 0 to 8 so divide by two to get the bars
如果数据从 3G 下降到 1x,则使用 actualLevel。
这是我用来查找显示柱数的代码。
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);
if (signalStrength.isGsm()) {
if (signalStrength.getGsmSignalStrength() != 99)
signalStrengthValue = signalStrength.getGsmSignalStrength() * 2 - 113;
else
signalStrengthValue = signalStrength.getGsmSignalStrength();
} else {
final int snr = signalStrength.getEvdoSnr();
final int cdmaDbm = signalStrength.getCdmaDbm();
final int cdmaEcio = signalStrength.getCdmaEcio();
int levelDbm;
int levelEcio;
int level = 0;
if (snr == -1) {
if (cdmaDbm >= -75) levelDbm = 4;
else if (cdmaDbm >= -85) levelDbm = 3;
else if (cdmaDbm >= -95) levelDbm = 2;
else if (cdmaDbm >= -100) levelDbm = 1;
else levelDbm = 0;
// Ec/Io are in dB*10
if (cdmaEcio >= -90) levelEcio = 4;
else if (cdmaEcio >= -110) levelEcio = 3;
else if (cdmaEcio >= -130) levelEcio = 2;
else if (cdmaEcio >= -150) levelEcio = 1;
else levelEcio = 0;
level = (levelDbm < levelEcio) ? levelDbm : levelEcio;
} else {
if (snr == 7 || snr == 8) level =4;
else if (snr == 5 || snr == 6 ) level =3;
else if (snr == 3 || snr == 4) level = 2;
else if (snr ==1 || snr ==2) level =1;
}
text.setText("Bars= " + level);
}
}
在下面的创建方法中使用它,并确保 list 使用 READ_PHONE_STATE。
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
AndroidPhoneStateListener phoneStateListener = new AndroidPhoneStateListener(text);
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
关于android - CDMA 设备的信号强度范围(以 dbm 为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464671/
想通过代码确定 Android 上的语音 channel 是否有噪音。 http://developer.android.com/reference/android/telephony/SignalS
TelephonyManager.getLine1Number() 适用于 GSM 手机,但不适用于 CDMA 手机。是否有可能通过 android API 调用获取 CDMA 手机的电话号码?谢谢
Android提供了以下方法来判断网络运营商: http://developer.android.com/reference/android/telephony/TelephonyManager.ht
我知道我可以使用 AT 命令与 GSM/CDMA 调制解调器通信。但是,据我所知,这在连接时不起作用 - 有没有办法在连接时读取状态信息(信号强度、GSM/HSDPA 模式等)? 我不确定 modem
我正在用 java 创建一个程序,它将处理 GSM/CDMA 的通话详细记录。 我正在寻找用于 GSM/CDMA 的调用详细记录的标准结构。有人可以帮助我吗? 基本上GSM/CDMA的通话明细记录数据
我想知道我的应用是否可以依赖 Android 上的电话值,例如国家/地区、MCC 等。我可以使用 setprop 在运行时更改它们吗?我尝试使用 setprop 进行更改,但似乎没有用。根据我的理解,
在上一期的文章中,我们讲解了无线通信从模拟通信到数字通信,从1G到5G标准的演进,在这些更新换代的升级过程中系统容量也在不断的提升,这势必也需要对接入网络的方式进行升级和迭代。 无线通信和有线
google提供的android2.3里面,只能在GSM/WCDMA情况下才能从“设置”->“无线和网络”->“移动网络”->“接入点名称”中选择不同的apn帐号进行拨号连接,而C
我可以使用 GsmCellLocation 对象获取我的网络单元 ID。但是当我使用 CDMA、3G、HSDPA 或 UMTS 时......我无法获得 Cell ID。使用带有 3G 连接的 Gsm
我正在为许多不同的移动设备开发许多不同的移动应用程序,我想在本地开发环境中快速测试。我想知道是否可以(使用某种硬件)建立一个本地桌面 CDMA/GSM 基站,以便通过本地个人蜂窝网络测试设备。范围不必
我正在使用谷歌地图地理定位 API。其中有一个名为 radioType 的字段,唯一支持的值是 GSM、CDMA、WCDMA 和 LTE。尽管这些字段是可选的,但我将其包含在内是为了获得更准确的结果。
是否可以确定iPhone 4s的网络类型(GSM / CDMA)? 有没有办法确定iPhone 4s的网络类型(GSM / CDMA)。我想尽可能地区分GSM / WCDMA和CDMA。我使用以下代码
在我的应用程序中,我想检测手机是否处于漫游状态。我看到 TelephonyManager 中有 API TelephonyManager telManager = (TelephonyManager)
我正在制作一个必须获取设备类型的应用程序。设备是 GSM 还是 CDMA?我如何获得手机的制造商?任何人都可以帮助我如何做到这一点? 最佳答案 看TelephonyManager对于 CDMA 与 G
我正在使用 java 开发接收和处理 SMS 消息的程序。我已经能够对接收到的 SMS 消息的处理进行编码并使其完美运行。现在我面临的挑战是从 CDMA 网络接收 SMS 消息。当应用程序即将上线时,
我需要这个来调试 CDMA 数据(接收和发送的 SMS) 最佳答案 这可以通过 Telnet 向您的 Android 模拟器 发送命令来完成。首先确保你的 android 模拟器正在运行,然后在控制台
谁能说出为什么 TelephonyManager 的 getNetworkOperator 函数的文档声明这会为 CDMA 返回不可靠的结果? getNetworkOperator documenta
如何在 CDMA 网络下检索 Android 设备的国家代码信息? 对于所有其他人,您可以只使用 TelephonyManager为此: String countryCode = null; Tele
我在使用 SmsManager 中的 sendDataMessage() 方法时遇到问题. 在 2 个 GSM 模拟器之间发送数据 SMS 似乎至少部分有效,但在 Verizon CDMA 手机上使用
我正在检查 CDMA 设备的信号强度。任何人都可以指定 signalStrength.getCdmaDbm() 返回的范围吗?最低是 -120,但对于完整的信号强度,该值是多少?我得到的最高值是 -5
我是一名优秀的程序员,十分优秀!