Cita:
Originalmente Escrito por elitemovil
Gracias crack, se agradece mucho el aporte.!!!!
Saludos.!
|
El método original es:
/**
* Set roaming state when gsmRoaming is true and, if operator mcc is the
* same as sim mcc, ons is different from spn
* @param gsmRoaming TS 27.007 7.2 CREG registered roaming
* @param s ServiceState hold current ons
* @return true for roaming state set
*
private boolean isRoamingBetweenOperators(boolean gsmRoaming,
ServiceState s) {
String spn = SystemProperties.get(TelephonyProperties.PROPERTY_ ICC_OPERATOR_ALPHA, "empty");
String onsl = s.getOperatorAlphaLong();
String onss = s.getOperatorAlphaShort();
boolean equalsOnsl = onsl != null && spn.equals(onsl);
boolean equalsOnss = onss != null && spn.equals(onss);
String simNumeric = SystemProperties.get(
TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, "");
String operatorNumeric = s.getOperatorNumeric();
boolean equalsMcc = true;
try {
equalsMcc = simNumeric.substring(0, 3).
equals(operatorNumeric.substring(0, 3));
} catch (Exception e){
}
return gsmRoaming && !(equalsMcc && (equalsOnsl || equalsOnss));
}
Para que quede más óptimo, se podrían quitar (comentar) varias cosas:
/**
* Set roaming state when gsmRoaming is true and, if operator mcc is the
* same as sim mcc, ons is different from spn
* @param gsmRoaming TS 27.007 7.2 CREG registered roaming
* @param s ServiceState hold current ons
* @return true for roaming state set
*
private boolean isRoamingBetweenOperators(boolean gsmRoaming,
ServiceState s) {
String spn = SystemProperties.get(TelephonyProperties.PROPERTY_ ICC_OPERATOR_ALPHA, "empty");
//String onsl = s.getOperatorAlphaLong();
//String onss = s.getOperatorAlphaShort();
//boolean equalsOnsl = onsl != null && spn.equals(onsl);
//boolean equalsOnss = onss != null && spn.equals(onss);
String simNumeric = SystemProperties.get(
TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, "");
String operatorNumeric = s.getOperatorNumeric();
boolean equalsMcc = true;
try {
equalsMcc = simNumeric.substring(0, 3).
equals(operatorNumeric.substring(0, 3));
} catch (Exception e){
}
return gsmRoaming && !(equalsMcc
/*&& (equalsOnsl || equalsOnss)*);
}
Aunque esto no lo he probado.