Android - SignalStrength是一个事件类吗?

时间:2011-09-15 09:15:24

标签: java android events class

我对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);
 }

2 个答案:

答案 0 :(得分:1)

你做不到。获取相关SignalStrength对象的唯一方法是使用onSignalStrengthChanged方法。

但是,您可以使用TelephonyManager.getNeighbouringCellInfo方法列出周围的单元格并获取信号RSSI power(getRssi)。

答案 1 :(得分:0)

请参阅:getNeighboringCellInfo() returning null list

getNeighboringCellInfo()

这似乎不适用于三星设备。

很抱歉将此作为答案,但我无法在现有答案中添加评论。

至于我的回答,您可以在服务中自己跟踪RSSI,这样当您按下按钮时,将返回最后记录的RSSI值。话虽如此,我发现在我使用的三星Galaxy上,RSSI值实际上是天线条的数量(即我只得到4个值),而不是实际的RSSI。