A letter written by a concerned Android customer highlights the frustrations with the new Google Android Cupcake update and deprecitation of APIs. Read more…
Dear Google,
I never thought I’d be one of those guys who would complain about major updates like cupcake, but now I have to complain, even before it is out.
The reason for this is that the cupcake update will – as you know – make some API’s private and break a few others that weren’t officially public yet. This will disable some features that I have come to love. With cupcake:
- The API’s for GPS & Wireless Location will become private
- The API’s for Bluetooth & Screen Brightness will break
From now on, I’ll have to change all of these settings manually!
I don’t understand the reason behind these changes either. If there are applications that misbehave or crash, then – according to the principles of android – they will sink to the bottom of the list through 1-star ratings. Also, after the first Android Developer Challenge you’ve awarded Locale $275.000 because it allowed users to create situations where settings could be changed automatically when conditions were met. This meant that certain battery consuming features could be disabled automatically when battery life was getting low or when they weren’t required. The ability to automatically change these features offered substantial fixes for the G1’s poor battery life, but are now being removed.
The obvious ’solution’ for me would be to keep my Screen Brightness on 0% and disable GPS, Wireless Location and Bluetooth all together. Then again, people don’t buy smart-phones to look at a dimmed screen and just receive calls. People buy a G1, because it has a great open operating system that allows applications to interact with all parts of the phone. Closing previously public API’s is a very strange and disappointing move.
Therefore I recommend that you don’t go through with these changes and instead, expand the list of settings that applications can change. A few examples of useful additional public API’s would be the ability to let applications toggle the 2G/3G setting, activate/deactivate parts of Auto-synch and manage the keyguard. These API’s would allow people to use applications to conserve battery life even better and honor Androids ‘openness’.
Thank you for listening to my complaints,
A concerned customer
Do you share the same concerns? If so, post your Comments Below:
My opinions EXACTLY.
I can’t even fathom to think of what Google was hoping to accomplish by doing this…
If you are a developper who is influenced by these changes, then please post your concerns/dissatisfaction.
Hi,
This is the developer of SMS Commander, an Android application that allows you to execute various commands by sending text messages to your phone, including raising the ringer volume and getting a contact’s phone number.
One of the things that you can do with this application is find out where your phone is. If you lost your phone, you can receive the location of your phone.
The Cupcake development branch prevents developers like me from being able to temporarily change GPS settings in order to provide our users with location-related features. It requires that the user manually enable GPS, which means the user would have to already have GPS on when he/she loses his/her phone. We all know how fast GPS drains battery. So we’re not going to leave it on. When you are trying to find your phone, and Cupcake requires applications to ask the user to manually switch to GPS mode, chances are you’re not standing next to your phone changing settings so that you can find your phone — because it would already be in your hand.
I urge Google for the sake of Android users everywhere to please reinstate the functionality we are going to lose when we inevitably switch to cupcake, and the most innovative applications that made Android so great in the first place become useless.
@Seize Command
Apparently, GPS only drains battery when applications are calling on its functions, not when it’s just enabled. However, if something like Latitude is enabled that constantly polls the GPS, it would have a toll on the battery… at least that’s according to the guys who made ShopSavvy…
Source: http://www.biggu.com/2009/02/10/updated-gps-and-battery-life-on-g1/
At first I had the same reaction. But the more I think about it, the more I see that it is not that simple
The reason given by Google was “some applications change your wifi and gps settings, which drains the battery – so now we prevent that.”
In addition to that I would add this. If an app needs my location, I should be the one deciding if the “cells” are precise enough, or if the gps is more appropriate. Same for wifi: the user, not the app, should be the one who decides if 3G is fast enough for transmission.
Now of course if you don’t want an app to change your settings, just don’t install the app… But there are some useful apps that do that, that I’d still like to keep.
In my opinion, a way to handle that problem would be to rework the permissions system. When installing an app, currently the system says “the app wants to do this and that: if you’re ok with the whole list, install, if you’re not then don’t install”. Instead it could let the user decide *for each permission* if they agree.
But what happens if the app tries to do something that was not allowed by the user?
Also, this would confuse *a lot* the average user! The last thing we want is to confuse users when we just want them to install and execute our apps the easiest way possible, don’t you agree?
Thus I can understand Google’s move, they simply removed this api altogether, a simple if not perfect solution.
While I am not a developer of any app that makes use of changing settings (except perhaps snap photo and its gps location stuff). I agree 100%. I cannot understand the logic behind this move. It seems entirely arbitrary and no decent explanation has been forthcoming from big G.
Hi guys, can you please give me some links explaining these changes in detail? I could not come to any conclusion from Google’s 1.5 version notes (http://developer.android.com/sdk/android-1.5.html#api-changes).
Thanks
@Bod
I agree that the user should permit a certain application to use either cellular triangulation or GPS/WiFi, but that doesn’t justify removing the ability to automate these settings. There are a lot of applications that ask the user if they want the app to enable GPS for location detection or not and there are also apps where location detection is optional. If a developper offers good support for his or her app, then he should be responsive to requests by users to implement these options (I remember the debate with shopsavvy, because it automatically enabled WiFi). It is up to the interaction between the user and the developper to decide if an application can make these changes. If the developper doesn’t listen, then his app won’t get used as much and if the user has no problems with automatic enabling then there is no reason to make it optional (think about Sky map, it enables GPS when you open it, but that’s the entire point, to get a GPS fix. When you close the app again it disables GPS again).
The quality of the application should be decides by the interaction between developper and user and should not be dictated by Google.
I understand the Bluetooth being broken, because those were not public APIs. But they should have another way to accomplish the same. With the GPS, this is complete BS from Google, because these APIs were public and worked fine in Firmwares 1.0 and 1.1. There is no reason for them to change them to read only all of a sudden. This is why they have the uses-permissions for applications, so that if a user does not want an app to be able to toggle their GPS settings, it is for the user to do decide that they don’t want it, not for Google to decide. I agree with a previous post about allowing users to select what permissions they want to allow apps to use, and then it would be up to the developer to detect this list of selected permissions and then enable only those features that use them, so that it won’t be confusing to the user.
As the developer behind GasBot, I’m fortunately not directly effected by these changes, but they still perplex me none-the-less. In GasBot, I’ve always just detected what the user has enabled and used that for location information. I never toggled anything directly.
However, I still think that the ability to automatically toggle these settings is extremely important. Google said they didn’t want to allow apps to do it by themselves so they disabled it completely which seems like overkill to me. Why couldn’t they simply detect a call to the APIs set to toggle and pop up a dialog saying something like “Would you like to allow the application [App Name] to turn [On/Off] your [GPS/WiFi/etc]” and give the user the options of Yes or No? That seems like it would take care of everything because the user would know what’s being toggled, and which program is doing it.
Although I have to say that when it comes to Android, it seems like Google rushes something out without truly thinking it through completely and just deals with it later after they get complaints. Not exactly a compelling business model.
As a user, I fully agree with Chris Kelly : a pop-up would be a good way to tell the user whether the app should be allowed to change a setting or not. The SuperUser app (for root-enabled phones) does that greatly, poping up each time an application try to use su command, and asking the user what to do. More, it can remember an authorization if the user choose “always”. the app authentication system in android is great, let’s use it. Android is supposed to be open !
Clément: again you have to think about usability. Do you really want to turn Android into… *Windows Vista* (shudders)?
BoD
I’m still so frustrated that in a week or so I’ll have to remove half my Locale situations. This is the goodness I’m loosing:
- Battery > 70% = screen brightness 100%
- Charging = screen brightness 100% + GPS on
- Battery < 30% = GPS off
- Battery < 20% = Screen Brightness 0%
- Default = Screen Brightness 50%
- Sleep = Screen Brightness 0%
I know that in a week I’ll curse my phone for running out of battery, because I’m not going to have my screen brightness on 0% and my GPS off by default.
I also know I’ll curse my phone when I look at my phone at night while I’m still half asleep and the screen blinds me or if I look at it at night and find that the battery ran out, because the GPS was still on.
If you turn GPS on, it uses no extra battery. It’s only when an application actually asks it for your location that it fires up and starts to use battery.
If your app requires GPS, then what you do is:
1.) Detect is GPS is enabled
2.) If not, display a message telling the user to enable it and then fire an intent to display the particular setting screen so the user can enable it.
I’m a developer and a user, and I’m happy that the sandbox has been changed to secure these various system settings. Especially the setting for using data whilst roaming.
Well, if Google wants to give the user more control about their apps, they should provide means to control (as in view, and allow/disallow) Internet traffic.
Without such a thing, any simple game that claims “Internet access” for the highscore can be hidden botnet client. Or it could start browsing for kiddieporn (or other stuff that disables legal safeguards
)
Bluetooth and GPS both have icons in the Notification bar if used or activated, so the danger of allowing an app to switch that is rather small.
Basically, if this is a measure to bring back more user control, it’s laughable. It’s like insisting that an user that is chained to a truck has full control which shoes to use while he tries to run behind the truck. Irrelevant.
This is one of the areas that the iPhone might have got right with permissions. If you going to do anything that costs the user it will ask permission first. I know the comment is we don’t want it like Vista, but in a way it makes sense if the phone wants to access “expensive” hardware such as Wifi or GPS too.
Hopefully this can be sorted quickly with a 1.51 release.
For Europe is does sort of make sense – especially when you consider roaming charges – they are extremely expensive, thus it is good to know that those sort of connections areas where you can be charged for doing something is logged off from being used automatically. This way at least you get the choice and can make the decision on whether you want the expensive charge or not.
Am Jaam, you do not pay for using bluetooth, gps, wireless location and screen brightness. At least not in money, maybe in battery life.
The only function that would suit your argument would be the ability for applications to automatically enable or disable roaming and I agree that that is one of the only options that shouldn’t be determined by apps.
For the rest, after the cupcake update, I constantly find myself annoyed when I need to enable/disable GPS. I need to go all the way through the menu and manually change it. This is not an open platform.
YES! This is absolutely the worst part of Cupcake.