我对SignalStrength Android类有一点问题。有没有办法在onSignalStrengthsChanged()方法中使用此类中的方法而不引用此类中的对象? 从我看到的所有示例中,在我看来,这是一个事件类,并且当事件(gsm信号强度的变化)发生时创建该对象,并且这是从该类调用方法的唯一方法。我对吗?
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
String power= String.valueOf(signalStrength.getGsmSignalStrength());
gsmStat.setText("GSM cinr: " +power);
}
如果我想在其他情况下调用此类中的方法(并读取gsm信号属性),例如单击按钮对象时该怎么办?
非常感谢您提供任何帮助,我真的很不满意。
BR, Z
感谢您清除此问题。我试图使用getNeighbouringCellInfo,但由于某种原因,这返回0.是的,我已经搜索并尝试了不同的例子。
Tel = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE);
public void onClick(View v) {
List<NeighboringCellInfo> neighCell = null;
neighCell = Tel.getNeighboringCellInfo();
NeighboringCellInfo thisCell = neighCell.get(1);
int thisNeighRSSI = thisCell.getRssi();
String rssi=Integer.toString(thisNeighRSSI);
tvRSSI.setText("Test: " +rssi);
}
答案 0 :(得分:1)
你做不到。获取相关SignalStrength对象的唯一方法是使用onSignalStrengthChanged方法。
但是,您可以使用TelephonyManager.getNeighbouringCellInfo方法列出周围的单元格并获取信号RSSI power(getRssi)。
答案 1 :(得分:0)
请参阅:getNeighboringCellInfo() returning null list
getNeighboringCellInfo()
这似乎不适用于三星设备。
很抱歉将此作为答案,但我无法在现有答案中添加评论。
至于我的回答,您可以在服务中自己跟踪RSSI,这样当您按下按钮时,将返回最后记录的RSSI值。话虽如此,我发现在我使用的三星Galaxy上,RSSI值实际上是天线条的数量(即我只得到4个值),而不是实际的RSSI。