DO NOT UPGRADE Google Voice for Android to 0.4.* If You Use Google Voice for Free Calling With a Cellular Network
If you use Google Voice on Android for free calling via "my faves" or Verizon's "Friends & Family," you're going to want to steer clear of the Google Voice app's new updates.
The reason stems from their changes to the Direct Access number.
In the old version, people could add their own Google Voice number to their "Friends & Family" list, to get free calling when someone called them. All you'd need to do is set up Google Voice to show your Google Voice number on the caller ID as opposed to forwarding the incoming caller's number to the caller ID. You loose your screening, but Google Voice has in-call screening you can turn on, and even enable or disable for certain groups of callers.
What about for outgoing calls? Well that was a little more difficult, but still doable. The Google Voice application on Android allows you to set the phone to ask whether to use it, every time you make a call. When you select "Use Google Voice" in the OLD version (before 0.4.*), it would simply connect via a Local Access Number. A Local Access Number is a number that Google has registered in your region (there may be more than one), that Google Voice uses to connect your outgoing call to the Google Voice network. It does this by using the data connection to contact the Google Voice servers, and in the background, the call is connected via that access number. This means that technically, Google Voice outbound calls show up on your bill as the Local Access Number. This number changes, but very infrequently. I've seen them change every 3 weeks, but there was a time it didn't change for 6 months.
In order to ensure these calls are free also, you just monitor your local access number (Android shows you which Google Voice Local Access Number is being used to connect on each call). When it changes, you remove the old one, and pop in the new one. With Verizon, this change takes 24 hours, but it's better than never at all. The next day, your calls are free and there's nothing you have to worry about.
HOWEVER, Google Voice for Android changed their methods for the new version 0.4, released today. They are now assigning what is referred to as a Direct Access Number to EVERY number you call. That means that when you call mom from your contacts with Google Voice, it will generate a Direct Access Number that will ALWAYS be used to call mom. That way, it can skip the HTTP request to Google Voice's servers to access the call, thereby connecting you faster. That's great. Except now they charge you. It may generate 123-456-7890 for mom, and then when you call sister, it will generate and then always use 098-765-4321. It will do this for each call.
Do you see the problem? You can't possibly add each of these access numbers to your Friends & Family. Which means the free calling "workaround" will no longer work.
If you've already installed the Google Voice update, there is still hope. Go to the Google Voice application in the downloads section of the market, and press "Uninstall Updates." It's in the location where the "Uninstall" button normally goes. It'll tell you it will uninstall the application, and remove it from the device, but it actually only applies to the updates. If you have various experiences with this, sound off in the comments.
Then, as an added push to get Google to change their ways (OR AT LEAST MAKE DIRECT ACCESS NUMBERS A CONFIGURABLE OPTION IN THE SETTINGS), rate the app 1 star, and suggest they do exactly that. In fact, while we're at it, tell them to give us the option to keep the same Local Access Number. This is definitely a deal-breaker for me. Additionally, post comments on this thread.
2010-07-24 UPDATE: If you are having problems uninstalling the updates, just install this APK overtop of whatever version you currently have. It is the old version -- I extracted it from the system ROM myself: Download Now