Archive for February 2010

FlashNotify 1.2

Well, that didn’t take long – I’ve now added a “Stop flashing after…” option, as requested on the Market, and thought that was worthy of a version bump.

Not much more to say really… Just got to wait and see if I get any further automated crash reports for this one, and go from there 🙂

Various FlashNotify Activity

Quite a bit going on with FlashNotify that’s not been noted here. I added a remote crash reporter, which has given me a fair amount of useful debug from various phones, and uncovered a resource leak that really shouldn’t be happening. I’ve now resectioned the missed call code, and we should all get on a bit better from 1.1.5 onwards.

Also recently fixed an FC that would occur when the phone was low on memory when we were active.

Next up – I’ve had a feature request for a “Stop flashing after x minutes” setting, which seems pretty sensible to me… Might even call it 1.2 🙂

Tested FlashNotify on HTC Hero

I’ve had a few reports of nothing working on a number of phone models, so I’m attempting to grab as many phones as possible and test them. Currently, I’m certain that the HTC Magic and Hero devices work, and I’m actively seeking people with other phones that I can test properly.

Feel free to get in touch if you’ve got another phone and you don’t mind debugging things 🙂

Stonking start there

So the first version went out without the right security permissions. This may explain why so many people are listing it as not working… Solid testing performed, as you can tell.

Still, 1.1 up now, and we’ll see how we go.

FlashNotify on PC Browsable sites

Now available

FlashNotify is now out there in the market…Useful links:
From your phone…
And a donation app – £2
And another – £5
None of the online market lists seem to have caught up yet – links to follow for them.

Problems with Android’s WakeLock when on battery

For the sake of anyone else who may fall over this one at some point in the future…

I was trying to bring the phone out of sleep periodically using a Timer. That timer executes code that looks something like:

PowerManager pm = (PowerManager) this.ctx.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "FlashNotify");

This worked beautifully when plugged in via the USB debugger, but the moment I took the phone out of the cradle, everything stops. Blast.

It seems that when the phone drops into sleep mode when on battery mode, it enters a deep sleep state, where even the FULL_WAKE_LOCK can’t wake it up. The magic to prevent this – Before the phone makes it to the deep sleep state, grab a PARTIAL_WAKE_LOCK to keep it just about conscious. While this is potentially a little unfriendly on the battery, that’s kind of the point of this application, and we’re only going to do it for a little while.

(Vague conjecture – Maybe the OS is doing something akin to PowerManager.goToSleep to manage this – The API docs say that this overrides any wake locks, which seems a little heavy handed. Maybe that’s just wake locks which are currently active. I could dig around in the Android source, but I frankly can’t be bothered 🙂 )

This remedies the only major problem left with deploying this app now, and it’s currently running full time on my own phone. Just got to hook the settings screen up so that it works properly, and all should be ready to roll 🙂