Android Wi-Fi problems

I set up a second Wi-Fi AP in our house, because the signal from the first one doesn’t reach my bedroom, and my Nexus S phone and the new Nexus 7 tablet need internet to make me happy. This was fraught with problems.

My AP is a disused 2wire HG27-1HG-B DSL router from the time I had AT&T internet at my old place. I plug it into the wall, disable DHCP and DNS to make it behave as a bridge and play nice with our existing network router. My netbook gets good quality internet from it. I toy with the idea of using the same SSID and password for both APs, and letting devices switch between them based on signal strength. That works for the netbook.

Alas, not so for the Android devices: They pair with the extremely weak signal of the first AP downstairs and refuse to talk to the 2wire AP at all. So for testing, I swap a letter to give it a slightly different name, and now I see that the phone and tablet are endlessly trying to connect, getting a connection for a fraction of a second, then starting over.

Now, this is very odd, because in my old home, the phone has been talking to this AP all the time, when it was still my DSL router for AT&T. I switch to WEP encryption, and suddenly, the androids can connect! We can’t have WEP encryption, though, so something is rotten and I need to find out what it is. I switch back to WPA2-PSK, and the old problem comes back. Then I decide to use the same SSID and password that I used at my old apartment, and voila, the androids connect with WPA2-PSK. What is this sorcery? Why is the name or passphrase of my SSID a factor in this at all?

image

Current situation is that we have two SSIDs in our house, and my mobile devices know both of them, but I have to manually switch to the strongest one based on which floor of the house I am on. This is by no means ideal, I tell you. I may have to convince my roommate that we must use a persian poem as the shared SSID for our network.

Text message not received

“Message rejected because text message storage is full” – that has got to be the worst UX on a modern phone

  1. why is there a separate “text message storage”?
  2. why is it so small?
  3. I have more than 20MB of available space in the phone. why not use some of that to back up some of my … 200 (?) text messages?
  4. why didn’t you tell me it was getting fulll?
  5. how about telling me what I can do to fix this?
  6. why is the only option I found to address this one that deletes all messages? who wants that?
  7. can I get the text message you rejected now that I’ve made space?
Sigh. If you just sent me a text, I didn’t get it.

SDL on Android

Here’s a quick summary of how I got SDL to work on Android. First off, this is my setup:

  • Android NDK r6
  • Android SDK r12
  • SDL-2.0.0-6284

The first piece of bad news is that Android support is only in the upcoming SDL 2.0, not in the current stable 1.2. Although I’m sure it could be backported, SDL2 is pretty similar, so I decided to upgrade. The README.android file does a pretty good job of explaining the steps, but there were a few kinks:

  1. in jni/src/Android.mk, the line LOCAL_SHARED_LIBRARIES := SDL is wrong. That needs to be SDL2
  2. Java didn’t like that all the classes in src/org/libsdl/app/SDLActivity.java are in one file. I had to make separate SDLMain.java and SDLSurface.java files.
  3. In the onTouch method, I get a compile error (cannot find symbol) for event.getActionIndex() and event.getActionMasked(), so I commented out some of that code and haven’t used touch events yet. I still need to crack this nut.
  4. Because my SDK is installed in C:Googleandroid-sdk-windows, I had to edit local.properties to say sdk.dir=/Google/android-sdk-windows

Now I have one of the SDL test app running on my phone, drawing rectangles. Time to see if I can do something useful with that!

Maximizing battery life on the Optimus T

Yes, talking about my phone again. As was to be expected, I spent a lot of time with the phone on day one, and drained the battery in record time. Something needed to be done about that, and here’s what I’ve arrived at:

  1. I don’t need 3G, so I turned on the “2G only” option. I do not have a contract, because I like the $0 monthly fee of a prepaid SIM, and with T-Mobile that means I don’t get a mobile data plan. 2G is all I need, and it’s a lot less of a power-hog than 3G or 4G are.
  2. Turn Wi-Fi off. This sounds counter-intuitive, especially since I don’t have a data plan, but a lot of the time there’s no Wi-Fi network in range I can connect to, and even when there is, I don’t need to be permanently connected. Instead, I switch it on every few hours, which causes the phone’s various accounts to sync, then turn it off again and read the new emails/tweets/etc that came in.
  3. Display brightness all the way down. I’m indoors most of the time, and reading the screen is not a problem.
  4. Optimize for signal. T-Mobile has a terrible network, and my apartment is almost a dead zone for reception. Leaving my phone near the window instead of on the couch table means it won’t constantly be scanning for a network.

With all of this, I’ve gotten nearly 2 days out of the battery so far, though I didn’t make any calls in that time. It’s not the 5 days I used to get out of my Nokia 6300, but I think it will do.

Speaking of the lousy network coverage, T-Mobile has installed a funny app on the phone for “Wi-Fi calling”. It uses the Wi-Fi network for making calls, but still charges minutes to my prepaid contract. This seems ass-backwards at first, until you realize it’s a trick of theirs to hide how awful their 3G network really is. It’s enabled by default, and assuming you’re mostly calling from home and within reach of your wireless router, you get crisp quality phone calls, and aren’t immediately tempted to research Skype or Google Voice.

I bought a phone!

Today is the first time I’ve bought a phone. All my prior phones were either paid for and bought by my employer or hand-me-downs. This month, the last one of these did its final gasp, and it was time for me to look for a replacement.

After unsuccessfully trying to navigate a couple of online stores and filing to find an offer that didn’t require a degree in advanced marketing buzzword and retail theory, I simply walked into the T-Mobile store, told them I wanted an affordable android phone without a plan, and walked out with an LG Optimus T. It’s not going to win awards for 3D games performance, but that’s not what I wanted it for. And it’s not burning a hole in my wallet every month. First impression is pretty good, time to install a ton of apps!