Tuesday, 18 June 2013
Automate your Android
Need to automate some stuff on your Android gadget? There are plenty of apps out there to tone down your ringtone, switch off your data, or make your phone incommunicado when the time is right, and put it all back on when needed.
But which of those apps are good? And which apps should you avoid?
Apps that don't cut it
Tasker can do more than any similar app, but it only comes in a paid version and it won't let you try before you buy. For a complex app like Tasker the 15 minute Play Store trial is nowhere near enough.
Locale opens its Play Store description with some threatening text about people getting jailed for letting their phone ring. Too bad this scareware won't let you test if it really keeps you out of jail, unless you rob a bank to pay for the app first. The 15 minute Play Store window is not enough to try the app at different locations, unless you move really fast between your place and the courthouse.
AutomateIt won't let you test combined rules (e.g. "when at home" and "plugged in") unless you pay first. It's not easy to set multiple cell towers in a location trigger, and it only lets you change all the volumes, not just one or some.
Profile Flow has a free version, but it's so crippled that it's totally useless. Anything location-based doesn't work at all until you pay, so for all practical purposes there's only a paid version. You have to hand over your money before you can test if its location triggers will work for you.
Smart Settings doesn't have a lot of settings in it, and even fewer triggers. Maybe that will change, but for now there's so much missing from the app that there's no reason to use it.
Android Automate makes it excessively complicated to set triggers and actions. Worse yet, its location triggers are limited to battery-killing GPS and data-requiring network location. It won't toggle mobile data, and you can't set roaming state as a trigger.
Atooma tries to simplify setting up triggers by making you pick 'em from cartoon-like dials. It will use your light sensor, but not cell towers. It can toggle silent mode on and off, but won't give you any control over ringtone volume. I kicked Atooma off my phone real quick.
The best "if this then that" app is free, doesn't have any ads, and it doesn't ask for internet permissions. And of course it comes with lots of triggers and actions and an easy way to set them.
Llama is good, could be better
The winner is Llama. It's free, it doesn't have ads, it never goes online, and it has a pretty good user interface. It comes with lots of triggers, lots of actions, full control over all your ringtone and message tone levels, and you can choose to let it figure out where you are by cell towers (no battery, no data), network location (some battery, some data), or GPS (sucks your battery dry like a pregnant vampire, and it doesn't even work indoors). If your Android is rooted Llama can do even more for it.
There are a few features missing, though. Llama won't let you set movement as a trigger, so forget about things like auto-disabling WiFi when driving, or sending all incoming calls straight to voicemail when you're on the road. Maybe movement won't trigger Llama because the sensors would suck your battery dry too fast? It won't use the light sensor either, so you can't make it switch from ringing to vibration when you pocket your phone. Llama won't let you toggle debug mode either. Too bad, because leaving USB debugging opens up your phone for criminals and the government (yes, that's a tautology). It would be nice if Llama could auto-enable USB debugging when you launch apps that need it, and shut it off when you tap your way out of those apps.
Since Llama uses cell towers to guesstimate where you are, it can be very inaccurate out in the countryside where cell towers are few and far between. In cities it's not flawless either, because it can take a long time before Llama learns about all the towers that serve the same location. For example, after a week Llama still finds new cell towers near my house (12 and counting), and everytime it sees a new tower it thinks I've left the building. This could easily be fixed by detecting movement: a cell tower change when your phone isn't moving means that you didn't go anywhere, and Llama could auto-add the new tower to your current location.
A cheap'n'dirty way to fix the inaccuracy of cell tower locations is to pull an old dumbphone from the bottom drawer and keep it plugged in with bluetooth switched on. Set up a matching trigger in Llama and it knows when you're home, and you don't have to bump your phone against any NFC tags either. No need to worry about battery life, because bluetooth doesn't need a lot of power. Leave an old Nokia from 2003 in your car to send out its bluetooth signal to work around the lack of a motion trigger.
Llama has a simple tab layout, but it won't let you swipe between tabs. It won't let you choose which tab to launch into by default either. It wastes a lot of screen space on useless Llama factoids. They keep repeating and get annoying real quick, but Llama won't let you switch them off.
But the user interface flaws don't matter much, because Llama is one of those set-and-forget apps that you don't need to face very often. A few extra triggers and actions is all that Llama needs to turn from a good app into a great app.
If you want more features than Llama offers, Tasker is the only paid alternative that's worth your money. With Llama and Tasker out there it doesn't make any sense to buy apps like Locale, Profile Flow, or AutomateIt.
Monday, 17 June 2013
All or none
Don't like ads on your Android? If you rooted your gadget you can keep almost every ad away with AdAway or AdFree. Not rooted? AdBlock Plus will keep a lot of annoying ads away.
But what if you want to allow a few ads in the small number of apps that deserve a few pennies from their banners?
AdAway and AdFree work like sledgehammers. They block ad servers by telling your Android hosts file to send ad requests to hell. Unfortunately they won't let you whitelist any apps or sites, so if you tell it to block those annoying Google ads it will block all of them.
And they block 'em forever. If you want to run an app ad-free for a while to decide if you want to keep it, then allow its ads if you think the app is worth it, you can't.
Fighting the spamware from the Play Store
The Google Play Store has about a million apps in it, and most of 'em are crap. There are a few hundred thousand apps out there that exist for the sole purpose of spamming your phone or tablet with ads without giving you anything useful in return. Sure, you can uninstall the junk as soon as you find out you've been cheated into downloading it, but sometimes it's too late and the spammer already got paid.
Because an increasing number of apps dump spammy icons on your homescreen, add some crappy links to your browser bookmarks, and even try to change your browser homepage to send you to a website nobody with half a working brain cell would ever choose to visit. And that spamware pays as soon as it's installed, which encourages rogue developers to flood the Play Store with even more junk apps just to make a quick few pennies in the thirty seconds between installing and removing the spamware.
Worse yet, when you uninstall theoffending app that doesn't remove its spam. The homescreen links, crap shortcuts, and junk homepage stay behind for you to clean up.
A job for Google
How to kick the crap out of the Play Store? A good start would be some Googlecode that prevents apps from the Play Store from showing ads within the first hour or so. This way the spamware can't rake in undeserved money in the few minutes it takes you to find out you've been tricked into downloading app spam, and only apps that are good enough to keep make money from ads.
Along the same lines, Google could stop apps from sending out your IMEI, phone number, address book, email, and other sensitive data until the app has proven worthy by staying on your device for more than an hour. Fixing the broken Android permissions system would help a lot as well. For starters, Google could split the "phone state and identity" permission into "phone state" (mostly harmless) and "phone identity" (widely abused by thousands of apps).
Quarantining ads and data to keep the money away from the spammers and scammers would dramatically improve the quality of the apps on offer in Google's app store. It would also increase the reputation of ad-supported apps, and push less people into installing ad blockers. By making an ad blocker of its own, Google could increase the value of the ads that remain. It would be much better than Google's current attempt to keep ad blockers out of its shop.
One more thing that Google should do: require that each and every app in the Play Store discloses that it has ads and where they come from before you install them, and kick out apps that fail to be up-front about their ads. Or maybe Google shouldn't. If an app doesn't tell you it has any ads in it, you don't have to feel guilty about blocking them ;)
Just say no to bad ads
Have some apps on your phone or tablet that take their advertising too far? If they don't need internet access to do their job, firewalling them offline ensures that they can't download stuff that you'd rather keep out. It also ensures that they can't steal your phone number or other data that you want to keep to yourself. Ad servers that load blinking gif animations, try to push malware to your device, or abuse Flash or HTML5 to send you ads that make noise are easily blocked with AdAway (my favourite ad blocker) or AdFree.
• AFWall+ (excellent firewall)
• AdAway, AdFree, and AdBlock Plus
• Addons Detector (tells you which ads are in which apps, because the dev often doesn't)