gpt4 book ai didi

java - PhoneStateListener onSignalStrengthsChanged ArrayList 内的平均 ASU 值

转载 作者:太空宇宙 更新时间:2023-11-04 14:49:16 25 4
gpt4 key购买 nike

我希望得到有关以下问题的帮助。基本上,我尝试收集从 onSignalStrengthsChanged() 方法返回的每个 ASU 结果,并将每个 ASU 值放入 ArrayList 以便计算平均 ASU 值。我尝试了很多不同的方法,但无法得到正确的结果。 ArrayList 似乎只存储一个 ASU 值(即当前值)并覆盖以前的 ASU 值。很感谢任何形式的帮助。我尝试的代码如下;

private class SignalListener extends PhoneStateListener {
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {

Double strengthAmplitude = signalStrength.getGsmSignalStrength();

ArrayList <Double> arrayList = new ArrayList<Double>();

while (arrayList.size() <= 5) { //limit array list collection to 6 elements/ASU values
arrayList.add(strengthAmplitude);
}

for (int i = 0; i < arrayList.size(); i++)
int item = arrayList.get(i);

if (arrayList.size() == 0)
{
System.out.println("Warning! Average can not be calculated");
}
else
{
double total = 0;
for (double element : arrayList)
{
total = total + element;
}
double average = total / arrayList.size();
System.out.println("Average ASU value over sample: " + average);
}

super.onSignalStrengthsChanged(signalStrength);
}
}

最佳答案

需要考虑的几点:

  • 将您的 ASU 值保留在 onSignalStrengthsChanged() 之外声明的 ArrayList 中 - 正如 Gabe 所提到的,每次“onSignal..”触发时您都会创建新的 ArrayList,因此您的 arrayList 一次包含一项;将 arrayList 移到 onSignalStrengthsChanged() 之外,这样,您就可以将 ASU 读数添加到成员变量 arrayList 中,并且您将能够计算平均值

  • 重点是什么:

    for(int i=0; i<arrayList.size(); i++) 
    int item = arrayList.get(i);

    ???

  • 在Android中,建议使用Log方法而不是“System.out”

关于java - PhoneStateListener onSignalStrengthsChanged ArrayList 内的平均 ASU 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com