I am based in Germany and publish the "Last Call Widget" on the Android Market. I have been steady improving it over time, but one group of users still complain about it not working on their devices.
My widget listens for the "android.intent.action.PHONE_STATE" intent, and then sets an alarm to update the last call UI in 20 seconds, then 60 seconds, then 5 minutes, 1 hour, etc. This works reliably on all my test devices, even with aggressive task killers (try it yourself). Unfortunately I have a cluster of users with Motorola Droids on the Verizon network who complain that the UI does not automatically update.
I believe Verizon is a CDMA network (we have GSM here in Europe), though the Android API docs don't specify any implementation differences. This could also be a driver issue on the Motorola Droid (we have GSM Motorola Milestones in Europe).
I am wondering if anyone reading is in a position to offer any ideas, or test the widget on a Droid and/or CDMA network to see if they can reproduce an issue (with logs)?
Regards Mark
Well, while I have DROIDs, none have active Verizon accounts, as I moved my Verizon account to an Incredible. Hence, I cannot test your app, as I cannot place phone calls (except 911, and the police really won't appreciate my calling them just to test your app widget).
You might integrate some Flurry-type logging to see if it's that you are not getting the Intent at all, or if it is somehow not meeting your expectations (e.g., EXTRA_STATE
not what you're expecting).
Beyond that, you can use the Build
class to detect the DROID and have the alarm go off every N seconds all the time the phone is awake, instead of based on the incoming call. This will chew up more battery, and DROID users with your app who attack you with a task killer will stop those alarms. That's why I'd only do this for the DROID, or any other devices that you determine have similar behavior.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With