【问题标题】:Android - is SignalStrength an Event Class?Android - SignalStrength 是一个事件类吗?
【发布时间】:2011-09-15 09:15:24
【问题描述】:

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

【问题讨论】:

    标签: java android events class


    【解决方案1】:

    你不能。获取相关 SignalStrength 对象的唯一方法是在 onSignalStrengthChanged 方法中。

    但是,您可以使用 TelephonyManager.getNeighbouringCellInfo 方法列出周围的小区并获取信号 RSSI 功率 (getRssi)。

    【讨论】:

      【解决方案2】:

      见:getNeighboringCellInfo() returning null list

      getNeighboringCellInfo()
      

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

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

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

      【讨论】:

      • 是的,我看到了那个,实际上我有三星 Galaxy,但让我感到困惑的是,我在模拟器上测试时得到了这个结果,所以我相信我的代码可能有问题,因为我是这一切都很新。必须进行 Java 修订,我几乎忘记了我所知道的一切 :)
      猜你喜欢
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 2015-07-18
      • 2023-03-13
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多