Friday, March 4, 2011

Nook Color rooting options

Many Android enthusiasts are well aware that the Barnes & Noble Nook Color 7-inch "e-Reader" has the potential to be so much more--namely a full-blown Android tablet device. Several talented developers and hackers are working on 3 different projects aimed at helping the Nook Color realize its full potential. So, what are the projects, what are your options and which should you choose?

Friday, February 18, 2011

App Inventor sample project: Voice to Text and vice-versa

I'm back with another App Inventor tutorial for you. This time around, I have a simple tutorial that demonstrates an app that is able to convert your voice to text and, in turn, that text back to voice. Google does all of the heavy lifting in regards to converting voice and text, and thankfully makes it very easy to tap into those resources.

Let's get started...

1. Click on My Projects, then create a new project. I called mine VoiceApp.

2. You will now see the layout screen with Palette, Viewer, Components, Media and Properties boxes. Adding components is easy by dragging objects from the Palette box onto the Viewer.

Tuesday, October 26, 2010

Soft keyboard next button not working?

I recently ran across a problem with the soft keyboard's next button not advancing focus to the next EditText. In my case I implemented a RelativeLayout in which the EditText boxes were side-by-side, instead of the usual stacked approach. It seems the Next button always tries to focus the next line, not taking into account additional objects on the same line (at least in my particular layout). Luckily, Android provides a method for overriding this behavior with custom instructions.
android:nextFocusDown

Wednesday, October 20, 2010

Get Android device screen width

Quick tip on how to get the width of your device in code. Don't use View.getWidth() -- gives the wrong result.

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
int screenWidth = display.getWidth();

Friday, October 15, 2010

Angry Birds now on Android



The runaway hit game that started on iOS, then migrated to webOS has finally made it to Android. It is currently exclusively available for free on GetJar - Angry Birds (12.33 MB). (Note, the site is overwhelmed at this point--I was able to download it from the mobile version of the site GetJar Mobile.) Rovio, the developer, promises the game will be available via the Android Market very soon, which should alleviate the download issues.

This is big news for a platform that has struggled to gain any footing in the gaming market. Will this be the start of a push for good gaming on Android or will the likes of Apple, Nintendo, Sony and HP-Palm continue to lead the way? Time will tell. For now, enjoy Angry Birds!

Update:
Looks like Rovio meant "very soon" as the app is now available in the Android Market.

Video after the break...

Wednesday, October 13, 2010

Favorite Apps: Productivity

 ASTRO File Manager

Price: FREE
I'm sure most people have heard of ASTRO File Manager by now and a large percentage probably have it installed on their device. For those not falling into either of those categories, it's time to join the party. OK, it's not a party, but it's an incredibly useful app that allows you to browse the contents of your SD card and file system. This functionality should be built-in to Android, but since it's not, this is the next best thing. The instances in which you'd want or need to view the contents of your SD card are countless (flash drive functionality, music, videos, etc) and this gives you the access you need to do so. This is the first app I install when I get a new Android device.
Download Links:   Appolicous  |  App Brain  |  Cyrket

Tuesday, October 12, 2010

HttpPost request

Most times an HTTP Get request is all that is required for your data gathering needs. Occasionally, though, you'll need to send an HTTP Post request. It's fairly simple, just different. Here's the code:

HttpConnectionParams.setConnectionTimeout(httpParameters, Constants.connectionTimeout);
HttpConnectionParams.setSoTimeout(httpParameters, Constants.socketTimeout);
HttpClient httpclient =  new DefaultHttpClient(httpParameters);
HttpPost httppost = new HttpPost(Constants.MAIN_URL);
List<namevaluepair> nameValuePairs = new ArrayList<namevaluepair>(2);
nameValuePairs.add(new BasicNameValuePair("u", eUsername));
nameValuePairs.add(new BasicNameValuePair("p", ePassword));

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Create a response handler
 ResponseHandler<string> responseHandler = new BasicResponseHandler();
strResponseSaveGoal = httpclient.execute(httppost, responseHandler);