Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-SignalStrength是一个事件类吗?_Java_Android_Events_Class - Fatal编程技术网

Java Android-SignalStrength是一个事件类吗?

Java Android-SignalStrength是一个事件类吗?,java,android,events,class,Java,Android,Events,Class,我对SignalStrength Android类有点问题。有没有一种方法可以使用此类中的方法而不在onSignalStrengthChanged()方法中引用此类中的对象? 从我看到的所有示例中,我认为这是一个事件类,该对象是在事件(gsm信号强度的变化)发生时创建的,这是从该类调用方法的唯一方法。我说得对吗 public void onSignalStrengthsChanged(SignalStrength signalStrength) { String power

我对SignalStrength Android类有点问题。有没有一种方法可以使用此类中的方法而不在onSignalStrengthChanged()方法中引用此类中的对象? 从我看到的所有示例中,我认为这是一个事件类,该对象是在事件(gsm信号强度的变化)发生时创建的,这是从该类调用方法的唯一方法。我说得对吗

    public void onSignalStrengthsChanged(SignalStrength signalStrength)
  {
     String power= String.valueOf(signalStrength.getGsmSignalStrength());
     gsmStat.setText("GSM cinr: " +power);
  }
如果我想在其他情况下调用此类中的方法(并读取gsm信号属性),例如当我单击按钮对象时,该怎么办

非常感谢你的帮助,我真的被困在这里了

比尔, 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);
 }
Tel=(TelephonyManager)getSystemService(Context.TELEPHONY_服务);
公共void onClick(视图v){
List neighCell=null;
neighCell=Tel.getNeighborringCellInfo();
NeighbringCellInfo thisCell=neighCell.get(1);
int thisNeighRSSI=thisCell.getRssi();
字符串rssi=Integer.toString(thisNeighRSSI);
设置文本(“测试:+rssi”);
}

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

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

请参阅:

这在三星设备上似乎不起作用

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


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

是的,我看到了那个,实际上我有三星Galaxy,但让我困惑的是,我在模拟器上测试时得到了这个结果,所以我相信我的代码可能有问题,因为我对这一切都是新手。我要做一个Java版本,我几乎忘记了我所知道的一切:)
getNeighboringCellInfo()