这是我用来检测更改的电话状态侦听器
public PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
Log.d("SIGNAL ", " " + signalStrength.toString());
TelephonyManager tm = (TelephonyManager) mContext.getSystemService(mContext.TELEPHONY_SERVICE);
List<CellInfo> cellInfos = tm.getAllCellInfo();
for (int i=0 ;i<cellInfos.size() ;i++)
{
Log.d("test ",cellInfos.get(0).toString() );
}
}
};
问题是目前我获取的所有手机信息如下:
结果-
我如何解析它以从上述结果中获得CellInfoLte、CellIdentityLte和CellSignalStrengthLte
试试这个(根据cocorico的说法):
String ssignal = signalStrength.toString();
String[] parts = ssignal.split(" ");
这是一种力量。toString()来自信号强度。
parts[]数组将包含以下元素:
part[0] = "Signalstrength:" _ignore this, it's just the title_
parts[1] = GsmSignalStrength
parts[2] = GsmBitErrorRate
parts[3] = CdmaDbm
parts[4] = CdmaEcio
parts[5] = EvdoDbm
parts[6] = EvdoEcio
parts[7] = EvdoSnr
parts[8] = LteSignalStrength
parts[9] = LteRsrp
parts[10] = LteRsrq
parts[11] = LteRssnr
parts[12] = LteCqi
parts[13] = gsm|lte|cdma
parts[14] = _not really sure what this number is_
因此,LTEdBm是:
TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
int dbm = 0;
if ( tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_LTE){
// For Lte SignalStrength: dbm = ASU - 140.
dbm = Integer.parseInt(parts[8])-140;
} else {
// For GSM Signal Strength: dbm = (2*ASU)-113.
if (signalStrength.getGsmSignalStrength() != 99) {
int intdbm = -113 + 2
* signalStrength.getGsmSignalStrength();
dbm = Integer.toString(intdbm);
}
}
如果您仍在努力解决此问题,我将使用以下方法:
//permission check
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions((Activity)this,new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},1);
String list = ""; //I'm just adding everything to a string to display, but you can do whatever
//get cell info
TelephonyManager tel = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
List<CellInfo> infos = tel.getAllCellInfo();
for (int i = 0; i<infos.size(); ++i)
{
try {
CellInfo info = infos.get(i);
if (info instanceof CellInfoGsm) //if GSM connection
{
list += "Site_"+i + "\r\n";
list += "Registered: " + info.isRegistered() + "\r\n";
CellSignalStrengthGsm gsm = ((CellInfoGsm) info).getCellSignalStrength();
CellIdentityGsm identityGsm = ((CellInfoGsm) info).getCellIdentity();
list += "cellID: "+ identityGsm.getCid() + "\r\n";
list += "dBm: " + gsm.getDbm() + "\r\n\r\n";
//call whatever you want from gsm / identitydGsm
}
else if (info instanceof CellInfoLte) //if LTE connection
{
list += "Site_"+i + "\r\n";
list += "Registered: " + info.isRegistered() + "\r\n";
CellSignalStrengthLte lte = ((CellInfoLte) info).getCellSignalStrength();
CellIdentityLte identityLte = ((CellInfoLte) info).getCellIdentity();
//call whatever you want from lte / identityLte
}
else if (info instanceof CellInfoWcdma) //if wcdma connection
{
CellSignalStrengthWcdma wcdmaS = ((CellInfoWcdma) info).getCellSignalStrength();
CellIdentityWcdma wcdmaid = ((CellInfoWcdma)info).getCellIdentity();
list += "Site_"+i + "\r\n";
list += "Registered: " + info.isRegistered() + "\r\n";
//call whatever you want from wcdmaS / wcdmaid
}
} catch (Exception ex) {
Log.i("neighboring error 2: " ,ex.getMessage());
}
}
Log.i("Info display", list); //display everything.
当我们忙的时候,只是提醒一下,LTE解析是非常糟糕的(你会看到你是否做了getCi(),getTac()等等),所以我写了我自己的解析类,并在这里发布了我的答案。
不过,值得注意的是,当你开始看到你的邻近小区信息完全错误时...(我目前面临的问题),这个困境也贴在这里。祝你好运,如果这部分对你来说不是问题,请告诉我
问题内容: 假设我在Redis中有这些对: 键始终是十进制数字。当提供一个数字时,我想在两个方向上获得最接近数字的两个键。 例如,如果我搜索的邻居,则结果集应具有: 这可能吗?我还是Redis的新手,感谢您的帮助。 问题答案: 是和不是同一时间。 为什么是? 唯一的redis数据类型-SORTED SET允许您获取基于十进制的值范围。因此,使用ZRANGEBYSCORE,您可以按分数范围获取值。
问题内容: 我正在编写一个在x86-32和x86-64 Linux中使用和进行反汇编的工具。问题是,尽管我能够分解libopcode,但无法获得任何指令信息。为了演示起见,我举了一个最小的例子来重现我的问题。该程序应从入口点反汇编到第一个/ 。 该代码有点被全局变量所破坏,为简洁起见,省略了错误检查等,但是应该清楚地说明问题。 可以使用以下内容构建此源。要执行成功的链接,需要将该软件包安装在本地计
本文向大家介绍微信小程序wx.getImageInfo()如何获取图片信息,包括了微信小程序wx.getImageInfo()如何获取图片信息的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 一.知识点 二.列子 (1).加载时 (2).上传图片时 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊
除了获取客户端的地区信息外,有时他们所在的时区信息也非常有用。LocaleContextResolver接口为LocaleResolver提供了拓展点,允许解析器在LocaleContext中提供更多的信息,这里面就可以包含时区信息。 如果用户的时区信息能被解析到,那么你总可以通过RequestContext.getTimeZone()方法获得。时区信息会自动被SpringConversionSe
是否可以使用邻居缓存中的链接地址从udp客户端节点向邻居发送自定义数据包?我正在寻找一种避免发送icmpv6数据包的方法,因为它将到达根目录,然后根目录将其发送到目标目录。我看到Contiki启用了mesh拓扑,所以应该可以直接向邻居发送数据包,而无需将数据包转发给父级。我将非常感谢您在这方面的任何帮助!
我在UserProfile中添加自定义字段UserType作为字符串。我想更改我的获取值,并将该值传递到TempData中。 这是我在AccountController上的代码: 我对该方法进行了调试,以下是我掌握的信息: 有人对此有什么解决办法吗?我是ASP. NET的新手,但也许如果我实现自定义成员资格,它会工作,你觉得呢?你能给我一些例子吗?谢谢你们。 解决方案如下: `[HttpPost]