On Dec 3, 9:57 am, gudujarlson <gudujarl...@gmail.com> wrote:
> not the home operator. So for example, if I had a contract with AT&T
> and I was in Seattle, both the current cell site and the home operator
> are the same, but if I traveled to Vancouver, Canada the cell site
> would be owned by Rogers and those functions would return the MCC and
> MNC of Rogers, not AT&T.

Correct, which is what you would expect.

> The GSM API on Android, Windows Mobile, and
> Blackberry allow you to differentiate between the home and current
> operator...

I've never been roaming on my app so I'd be curious to know what it
did myself.

> I have not tested getNetworkOperatorName() in a roaming situation, but
> my assumption is that it returns the carrier that owns the current
> cell site.

getNetworkOperatorName() is all I use, although thinking about it I
could see why you would use the getSimOperator -- the sim has the
carrier info and that never changes. I guess this is the
differentiation you mentioned?

> ServiceState.getOperatorNumeric()
>     Returns the current operator (MCC + MNC). This is retrieved from
> the current cell site.

You can also get that from getNetworkOperator() and parse the string.
I wonder why they put that in so many places?


> TelephonyManager.getSimOperator()
>     In non "world phones", this returns the first 6 digits of the IMSI
> (e.g. 3100004). This is bogus, because CDMA IMSI's have 00 for the MNC
> which 2 digits not 3 and useless either way. The 4 on the end is
> actually the beginning of the subscriber ID. This is a bug in Android
> as far as I can tell. In world phones, it will probably return the MCC
> +MNC for an operator in Europe.
>
> ServiceState.getOperatorNumeric()
>     Returns the MCC + 00. This is mostly useless, because it does not
> identify the carrier.

Well, it wouldn't. That's why it's a country code and not a network
code.

But don't get me started on Android 2.0 and this CDMA stuff. Example:
the CdmaCellLocation has two methods (getBaseStationLatitude() &
getBaseStationLongitude()) which, judging from the name return the LAT/
LON of the site. Great, I'm thinking until I look at the datatype and
see that they are both INTs. Which, again, wouldn't be a problem if
they said, "To get the decimal value divide by 1,000,000", but they
don't. Another beautiful mystery is that onSignalStrengthChanged has
been depracated, but they don't state what the replacement is.

Ken

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to