Java 使用方法设置int值
我不是Java开发人员,但我正在尝试为Android的Cordova插件添加更多数据 我不明白为什么这是不允许的?在这里,我试图用这个方法设置asu的值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
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这些子类并获取有关信号强度的信息。因为它们不是抽象的,所以您可以创建它们的实例。