Java 使用方法设置int值

Java 使用方法设置int值,java,android,cordova,cordova-plugins,Java,Android,Cordova,Cordova Plugins,我不是Java开发人员,但我正在尝试为Android的Cordova插件添加更多数据 我不明白为什么这是不允许的?在这里,我试图用这个方法设置asu的值 int asu = getSignalStrength(); The method below: int signalStrength = 0; private int getSignalStrength(CellSignalStrength signal) { signalStrength = signal.getAs

我不是Java开发人员,但我正在尝试为Android的Cordova插件添加更多数据

我不明白为什么这是不允许的?在这里,我试图用这个方法设置asu的值

int asu = getSignalStrength();

The method below:

  int signalStrength = 0;


  private int getSignalStrength(CellSignalStrength signal) {
    signalStrength = signal.getAsuLevel();
    return signalStrength;
  }
错误如下:

类Sim中的方法getSignalStrength无法应用于给定的 类型; int asu=getSignalStrength()


它们不是都是int类型吗?我做错了什么

调用getSignalStrength()时必须添加参数; 如下-


int asu=信号强度(信号)

首先创建CellSignalStrength的新实例:

 final TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
CellInfoGsm cellInfoGsm = (CellInfoGsm) telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthGsm cellSignalStrengthGsm = cellInfoGsm.getCellSignalStrength();
cellSignalStrengthGsm.getDbm();
然后可以将其作为参数传递到方法中

int asu = getSignalStrength(cellSignalStrengthGsm);

我只是想和大家分享一下它最后的样子:

TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);


      List<CellInfo> cellInfos = manager.getAllCellInfo();   //This will give info of all sims present inside your mobile 
      int asu = 0;
      if(cellInfos!=null){
        for (int i = 0 ; i<cellInfos.size(); i++){
           if (cellInfos.get(i).isRegistered()){
                if (cellInfos.get(i) instanceof CellInfoWcdma) {
                    CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) manager.getAllCellInfo().get(0);
                    CellSignalStrength strength = cellInfoWcdma.getCellSignalStrength();
                    asu = getSignalStrength(strength);
                } else if(cellInfos.get(i) instanceof CellInfoGsm) {
                    CellInfoGsm cellInfogsm = (CellInfoGsm) manager.getAllCellInfo().get(0);
                    CellSignalStrength strength = cellInfogsm.getCellSignalStrength();
                    asu = getSignalStrength(strength);
                } else if(cellInfos.get(i) instanceof CellInfoLte) {
                    CellInfoLte cellInfoLte = (CellInfoLte) manager.getAllCellInfo().get(0);
                    CellSignalStrength strength = cellInfoLte.getCellSignalStrength();
                    asu = getSignalStrength(strength);
                }
            }
        }
    }
TelephonyManager管理器=(TelephonyManager)context.getSystemService(context.TELEPHONY_服务);
List cellInfos=manager.getAllCellInfo()//这将提供手机内所有模拟市民的信息
int asu=0;
if(cellInfos!=null){

对于(int i=0;iYou没有传入参数。它们不是可选的。您的函数需要一个参数“signal”被调用。为什么您在调用时不发送?如果您无法解决问题,请共享更具体的代码。不确定要传递什么,我猜是CellSignalStrength类型,但不知道如何传递它,或者首先初始化它?我猜我应该按原样传递CellSignalStrength。我假设参数是CellS类型ignalStrength?我该如何传递它?就像CellSignalStrength一样,还是必须首先以某种方式启动它?您必须创建CellSignalStrength对象并将其作为参数传递对不起,但是如何传递?尝试了这个,显然是错的。CellSignalStrength信号=CellSignalStrength;CellSignalStrength信号=新的CellSignalStrength();创建这样的对象->TelephonyManager TelephonyManager=(TelephonyManager)this.getSystemService(Context.TELEPHONY_服务);CellInfoGsm CellInfoGsm=(CellInfoGsm)TelephonyManager.getAllCellInfo().get(0);CellSignalStrengthGsm CellSignalStrengthGsm=CellInfoGsm.getCellSignalStrength();int asu=getSignalStrength(蜂窝信号强度HGSM);我试过了,CellSignalStrength是抽象的;无法实例化我这样导入它:导入android.telephony.CellSignalStrength;是否有CellSignalStrength的子类?已知的直接子类CellSignalStrength Hcdma、CellSignalStrength Hgsm、CellSignalStrength Hcdmaso您认为需要哪一个?您可以使用t这些子类并获取有关信号强度的信息。因为它们不是抽象的,所以您可以创建它们的实例。