, .getGsmSignalStrength(); : 0-5,99
. , :
int strength=signalStrength.getGsmSignalStrength();
Log.v("Mobile","BARS: "+strength);
try{
Class classFromName = Class.forName(SignalStrength.class.getName());
java.lang.reflect.Method method = classFromName.getDeclaredMethod("getAsuLevel");
strength = (int) method.invoke(signalStrength);
}catch (Exception ex){Log.v("Mobile","cant retreive");}
if (strength == 99 ) { Log.v("Mobile", "ERROR! GSM signal strength not available!");return;}
if (strength == 255) { Log.v("Mobile", "ERROR! UMTS signal strength not available!");return;}
ASU, , , , Dbm. ASU :
Log.v("Mobile","ASU: "+strength);
Data.mobile_signal =(int)((double)strength*100/31);
Data.mobile_signal =(int)((double)strength*100/91);
Log.v("Mobile","Set GSM signal from "+strength+" to "+Data.mobile_signal);
, , GSM, CDMA. TelephonyManager.getPhoneType(); :
1 = GSM, 2 = CDMA, 3 = SIP
! , 50% - , 5 ! !
, . , , , 100%. 50% 100%. .