I live in Iowa. My WiFi only Android tablet's AccuWeather.com weather app, and Google Maps,
and Chrome on my laptop tell me I'm located Oklahoma City. Why?
From what I understand, on WiFI only, Google's location services use the course location of your IP address to estimate your location. It's always worked like this in the past and when you look on Google Maps, you will usually see your location as where your ISP's server farm is.
This summer, I was living and working in Oklahoma City where I purchased an old Linksys WRT56G for $3 from a thrift store. I promptly installed DD-WRT on it, etc. I set it up where I was living and used it for a few weeks. I did not have my tablet at this time however I had my laptop.
Now, a lot of things happened within a very short time span, but the following order:
- I returned home and have been using my laptop and Chrome linked with my Google account.
- I obtained a new Android phone, installed 3rd party software, and linked it with my Google account.
- I bought and setup my tablet and linked it with my Google account.
- My home router died and I replaced it with the router I bought in Oklahoma City.
I'm not entirely sure but at one point I think my laptop gave me search results for Oklahoma City. Google Maps on my laptop currently tells me I'm in Iowa, but nothing finer than that. My tablet thinks I'm in Oklahoma City and has since I set it up. My phone has always given me the correct [fine] location.
Given the facts, I see two possibilities:
Google stores a last known fine location with your account which was picked up by my tablet when I linked it with my Google account. The tablet has yet to sync any newer fine grained locations. Because a fine location would take precedence over a course location (which is all that WiFi can give you), the tablet is using old fine grained location data (course and fine are things to the Android system's location services). It seems unlikely the tablet would not sync a new fine location after about a week, I would think my new phone would update that information and indeed it displays the last sync date as today (later than my initial tablet setup). My tablet also displays the last sync time as today. The only remaining explanation would be my phone's aftermarket firmware's location sync feature (were that to exist) is not yet working. This would be plausible as I'm using an unofficial nightly build of CM10. However, this seems unlikely.
Google has a robot silently pinging every public IP address it can and recording/associating the MAC address present with the IP address. The location services then first try to locate you by, provided finer information is unavailable, MAC address and then IP, etc. This is not an easy task and the association map would probably be updated bi-weekly at best. This is plausible as some sort of massive IP address <--> MAC address mapping is right up the alley of weird-but-semi-useful things Google could come up with, and they definitely have the resources to do so. Further, it aligns with the fact that the only thing that seems to be constant between before and after I setup my tablet is the Linksys router originating in Oklahoma. However, I believe my tablet thought it was in Oklahoma from the start, before I installed the Oklahoma native router. I also find this option unlikely.
So, I'm at a loss. Both possibilities seem plausible but unlikely at best. Does anyone have knowledge of how Google's locations services work or an explanation as to why my tablet is experiencing this odd phenomenon?