Android App Development: Using Toasts and Alerts

Android offers two methods to display messages to the user: Toasts and Alerts. in this post we’re going to explore both of them.

Toasts:

toasts are pop up messages that lasts for a certain duration and then disappear. a Toast is a transient message that appears and disappears without any interaction from the user and with no notification to the program that it disappeared.

the Toast can display a simple text message or a complex view.

Displaying simple text:

to display a simple toast that displays a text message we use the following code:

Toast toast=Toast.makeText(this, "Hello toast", 2000);
     toast.setGravity(Gravity.TOP, -30, 50);
     toast.show();

we create the toast using the static Toast.makeText(Context con,String message, int duration) method to create a toast in the current context to display a text message for a duration specified in milli seconds or we can use the constant values Toast.LENGTH_SHORT to display for a short duration or Toast.LENGTH_LONG for longer duration.
The toast by default appears in the center of the screen, you can change the default position by specifying the Gravity and the X and Y offsets.
finally we call the Show() method to display the toast.

the previous toast will be like this:


Displaying complex views:

Toasts can also display complex views. this is done like this:

First: create a layout xml file in res/layout directory. the file must be named toast_layout.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/toastView"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello toast"
    android:textColor="#000"
    />
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtDate"
    android:textColor="#000"
    />

</LinearLayout>

then from the code

Toast toast=new Toast(this);
     LayoutInflater inflater=this.getLayoutInflater();
     View toastView=inflater.inflate(R.layout.toast_layout,
     (ViewGroup)findViewById(R.id.toastView));
     TextView txtDate=(TextView)toastView.findViewById(R.id.txtDate);
     txtDate.setText("toast appeared at "
     +Calendar.getInstance().getTime().toLocaleString());
     toast.setGravity(Gravity.CENTER, 0, 0);
     toast.setView(toastView);
     toast.show();

the toast will be like this:


Notes:

  • In the toast_layout.xml width, if you put any buttons or any control that has a callback, it would appear disabled and the user cannot interact with it.
  • The toast can be created in two ways: by calling Toast.makeText method or by specifyinga view via setView method. when you want to display a simple text use the first one otherwise use the second. if you try to interchange or combine between the two methods an exception will be thrown.

Alerts:

another way to show interactive messages is to use Alerts. alerts act as MessageBox or JOptionPane in J2SE. they have buttons that can be used to take decisions.

Creating Alerts:

let’s check this example to create an alert and show it:

//declared as final to be able to reference it in inner class
//declartations of the handlers
     final AlertDialog.Builder builder=new AlertDialog.Builder(this);
     builder.setTitle("Alert Dialog");
     builder.setMessage("This is the alert's body");
     builder.setIcon(android.R.drawable.ic_dialog_alert);

     builder.setPositiveButton("OK", new OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText("You clicked Ok");
   }
  });

     builder.setNegativeButton("Cancel", new OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText("You clicked Cancel");
   }
  });

     builder.setNeutralButton("Do something", new OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText("Neutral Button Clicked");
    AlertDialog ad=builder.create();
    ad.cancel();
   }
  });

     builder.setOnCancelListener(new OnCancelListener() {

   @Override
   public void onCancel(DialogInterface dialog) {
    // TODO Auto-generated method stub
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText(txt.getText()+" the cancel listner invoked");
   }
  });

     builder.show();

the previous code displays the following Alert:


the code may look bulky but it’s very simple.
first we create an instance of AlertDialog.Builder. we use the builder object to construct the AlertDialog object.
we specify the title and the icon of the alert. then the text to display in the body of the message.
the AlertDialog can display up to three buttons:
positive button: represents the OK button.
Negative button: represents the cancel button.
Neutral button: represents a button to perform another functionality other than ok or cancel.

note that there are no restrictions on the use of the three buttons, they can perform the same functionality the difference is just in logical meaning. but the three buttons cause the Alert dialog to dismiss.

we then specify the text and the click handler of each button.
in the neatral button click handler we added the lines AlertDialog ad=builder.create(); and ad.cancel();. the first line gets a reference to the current dialog created by the builder to provide additional functionality such as invoking cancel() method.

the cancel method raises the onCancel callback method.

we could have replaced the previous code with the following:

AlertDialog ad=builder.create();
     ad.setMessage(message);
     ad.setIcon(icon);
     ad.setMessage(message);
     ad.setButton(text, listener);
       .
       .
       .

Displaying Custom Views:

alerts can display complex views rather than simple text messages. create an xml layout file called alertview.xml like this:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/toastView"
    android:background="#DAAA"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello alerts"
    android:textColor="#000"
    />

   <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtDate"
    android:textColor="#000"
    />
    <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/btnAlert"
    android:text="Click"
    />
</LinearLayout>

to display this view as the alert view we do it like this:

View bodyView=getLayoutInflater().inflate(R.layout.alertview,
(ViewGroup)findViewById(R.id.toastView));

     TextView txtDate=(TextView)bodyView.findViewById(R.id.txtDate);
     txtDate.setText(Calendar.getInstance().getTime().toLocaleString());
     Button btnAlert=(Button)bodyView.findViewById(R.id.btnAlert);
     btnAlert.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    TextView txtDate=(TextView)bodyView.findViewById(R.id.txtDate);
       txtDate.setText(Calendar.getInstance().getTime().toLocaleString());
       TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText(Calendar.getInstance().getTime().toLocaleString());
   }
  });
     builder.setView(bodyView);
       .
       .
       .

what is interesting in this approach is that the alert is fully interactive, by clicking the button you can change the value of any view in the alert or in the activity.

you can also set the title of the alert to be a custom view via builder.setCustomTitle(View v) method in the same way described above.

Displaying an alert of items:

alerts can display a list of items from which the user selects from like this:

final String [] items=new String []{"Item 1","Item 2","Item 3","Item 4"};
     AlertDialog.Builder builder=new AlertDialog.Builder(this);
     builder.setTitle("Items alert");

     builder.setItems(items, new OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText(items[which]);
   }
  });

     builder.show();

this will display an alert like this:


notice that we do not have to specify any buttons because when the user clicks on any item the alert will be dismissed.

if the list items are in an Adapter we can achieve the same result using builder.setAdapter(Adapter ad,OnClickListener listner) method:

final String [] items=new String []{"Item 1","Item 2","Item 3","Item 4"};
     ArrayAdapter arr=new ArrayAdapter(this,
     android.R.layout.select_dialog_item,items);

     AlertDialog.Builder builder=new AlertDialog.Builder(this);
     builder.setTitle("Adapter alert");

     builder.setAdapter(arr, new OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText(items[which]);
   }
  });

or if the items are returned from a database in a cursor we can use
builder.setCursor(Cursor cursor, OnClickListener listner, String labelColumn)

Displaying alerts with items with choices:

we can add items to the alert with choices whether they are single choice (Radio buttons) or multiple choices (Check boxes).

to display single choice items:

final String [] items=new String []{"Item 1","Item 2","Item 3","Item 4"};
     AlertDialog.Builder builder=new AlertDialog.Builder(this);
     builder.setTitle("List alert");
     builder.setSingleChoiceItems(items, 0, new OnClickListener(){

   @Override
   public void onClick(DialogInterface dialog, int which){
    // TODO Auto-generated method stub
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText(items[which]);
   }
  });
     builder.setPositiveButton("OK", new OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub

   }
  });
     builder.show();

the second parameter of setSingleChoiceItems is an integer specifying the index of the selected item

notice that we added a postive button that when clicked dismisses the alert cause unlike the regular items list the alert won’t be dismissed when an item is selected.

the builder.setSingleChoiceItems method has other overloads that can accept an Adapter or a Cursor as parameters that hold the items to be displayed

to display multiple choice items:

final String [] items=new String []{"Item 1","Item 2","Item 3","Item 4"};
     AlertDialog.Builder builder=new AlertDialog.Builder(this);
     builder.setTitle("List alert");
     builder.setMultiChoiceItems(items, null, new OnMultiChoiceClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which, boolean isChecked) {
    // TODO Auto-generated method stub
    TextView txt=(TextView)findViewById(R.id.txt);
    txt.setText(txt.getText()+" "+items[which]);
   }
  });
     builder.setPositiveButton("OK", new OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub

   }
  });
     builder.show();

the second parameter of setMultiChoiceItems is an array of boolean values specifying which items are set selected. if you want no items to be selected then set it to null, otherwise specify an array with the same length of the items with boolean values indicating which item is selected and which is not like this:

new boolean[] {true,false,...}

works in the fashion as single items choice except that the selection here is multiple.

and that was everything about toasts and alerts, stay tuned for another tutorial next week/

Simple Pickers in iPhone

This is the “PickerApp” example. There are many ways to display the “PickerApp” in the iPhone. I am going to show you the simplest way to execute the Picker View.

Step 1: Open the Xcode and create a new Xcode project using View base application template. Give the application name “PickerApp”. As shown in the figure below:

Step 2: Expand classes and notice Interface Builder created the PickerAppViewController.h and pickerAppViewController.m class for you. Expand Resources and notice the template generated a separate nib, PickerAppViewController.xib, for the PickerApp.

Step 3: Open the PickerAppViewController.h file and make the following changes in the file.

#import <UIKit/UIKit.h>

@interface PickerAppViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> {
       
        IBOutlet UILabel *label;
        NSMutableArray *arrayC;
        IBOutlet UIPickerView *pickerView;

}
@property (nonatomic, retain) UILabel *label;
@end

Step 4: Double click the PickerAppViewController.xib file and after that make the following changes.

A) Open the view window, first drag the picker view from the library and place it to the view window and select the label and bring up Attribute Inspector and delete the text.

B) Connect File’s Owner icon to label and select “View”.

Once this is done, save the PickerAppViewController.xib file, close it and go back to the Xcode.

Step 5: Open the PickerAppViewController.m file and make the following changes in the file.

#import "PickerAppViewController.h"

@implementation PickerAppViewController
@synthesize label;

/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
– (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/

/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
– (void)loadView {
}
*/

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
(void)viewDidLoad {
[super viewDidLoad];
arrayC = [[NSMutableArray alloc] init];
[arrayC addObject:@"Red"];
[arrayC addObject:@"Green"];
[arrayC addObject:@"Blue"];
[arrayC addObject:@"Yello"];
[arrayC addObject:@"Pink"];
[arrayC addObject:@"White"];

[pickerView selectRow:1 inComponent:0 animated:NO];
label.text= [arrayC objectAtIndex:[pickerView selectedRowInComponent:0]];
}

(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
return 1;
}

(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
label.text=     [arrayC objectAtIndex:row];
}

(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
return [arrayC count];
}

(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
return [arrayC objectAtIndex:row];
}

/*
// Override to allow orientations other than the default portrait orientation.
– (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

(void)didReceiveMemoryWarning {
// Releases the view if it doesn’t have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren’t in use.
}

(void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

(void)dealloc {
[super dealloc];
}

@end

Step 6: Now build and run the code and view the Output in the Simulator.

You can download source code from here PickerApp

Amazon Cloud Player for iPhone? Not Yet

Amazon Cloud Player iPhone

Amazon has just unveiled Cloud Player, a new service that stores your music collection online and makes it accessible from any computer in the world. As I read on the Amazon sales page, “Cloud Player comes in two varieties: Web and Android,” I wondered whether there was an Amazon Cloud Player for iPhone. Nope. Amazon Cloud Player for iPhone is nonexistent.

Why is Amazon Cloud Player Not on iPhone?

A couple of theories come to mind:

  1. Amazon is a direct competitor to Apple with its MP3 store that competes with iTunes.
  2. Amazon is snubbing Apple after they imposed a 30 percent subscription fee in the App Store on all publishers (i.e. Kindle).

Nevertheless, if Amazon does not unveil a Cloud Player for iPhone, they will be missing out on a sizeable market which iOS users represent. I, for one, would love to see Amazon Cloud Player on iPhone. What about you?

Amazon Cloud Player for iPhone? Not Yet is a post from Apple iPhone Review.

You Might Also Like…

  1. Survey: High Schoolers Willing to Spend $$$ on iPhone
  2. Survey Says iPhone too Expensive
  3. iPhone Skeptics Sound a Lot Like iPod Doubters of 2001


Gameloft’s NOVA 3 rumored to be built on Unreal Engine

Gameloft has announced that it has licensed the Unreal Engine for four upcoming games set to be released in 2011 & 2012.

Gameloft hasn’t announced which games will be running on the Unreal Engine, but Pocket Gamer seems to believe that one of the titles slated to be released this year is their next followup to the popular-and already impressive looking-sci-fi shooters N.O.V.A. Near Orbit Vanguard Alliance & N.O.V.A. 2.

Last year Epic Games started dropping jaws when it released Epic Citadel as a proof of concept showing off the Unreal Engine running on iOS. Epic then followed it up in December with the stunning and widely praised Infinity Blade, a game many have claimed looked as good as current generation dedicated gaming consoles. After all, it’s the same engine that powers many blockbuster games like Gears of War, Bulletstorm, BioShock 2, despite more limited hardware on iOS devices.

Continue reading Gameloft’s NOVA 3 rumored to be built on Unreal Engine

Gameloft’s NOVA 3 rumored to be built on Unreal Engine originally appeared on TUAW on Tue, 29 Mar 2011 22:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Video extender powers iPad 2 wireless HDMI hack: The streaming adds 2 pounds

If you don’t mind spending a bit of money and adding a couple of pounds of weight (and a two hour time limit) to your iPad, this video demonstrates that a simple HDMI wireless extender will allow you to transmit audio and video to a remote presentation system.

After watching the clip, we hopped on Amazon to see what it might take to duplicate this hack; we found the HP Wireless TV Connect (the same product that appears to be in use) for $150, and a similar Brite-View product for $160. Although you can choose a VGA extender over an HDMI one, you will not be able to transmit audio the way this solution does — and you’ll end up spending more.

So how much should you expect to spend, beyond the iPad and receiving screen? The HP transmitter should work fine, although you can scale up to more professional HDMI transmitters for more dough if you need the quality. The Digital AV Adapter is $39, and the battery pack will add another $24 — then you’ll need a case to hold it all together. And stronger arms to carry the iPad around.

Still, for mobile presenters and trainers who absolutely have to roam around with iPad in hand, it’s an intriguing and (relatively) economical hack.

Video extender powers iPad 2 wireless HDMI hack: The streaming adds 2 pounds originally appeared on TUAW on Tue, 29 Mar 2011 21:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Apple Q2 2011 earnings call scheduled for April 20

Apple’s second fiscal quarter ends this week on Thursday, March 31, and the company has already scheduled the earnings call with financial analysts to discuss just how good (or bad) things were during the quarter.

As you can see, the call is scheduled for 5 PM ET (2 PM PT) on Wednesday, April 20. That’s at the time we normally host TUAW TV Live, so we may look into combining the call with a livestreaming video event for readers to join in on rather than our usual liveblog.

You’ll be able to listen in on the call here, and we’ll be sure to remind you of the event in the days leading up to the call.

[via MacStories]

Apple Q2 2011 earnings call scheduled for April 20 originally appeared on TUAW on Tue, 29 Mar 2011 20:15:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Pioneer demos new iPhone-powered in-dash interface

We first heard about Pioneer’s AVIC in-car units back at CES earlier this year, but earlier today, the company was kind enough to drive a Land Rover up to my curb here in Los Angeles, and I checked out the system in action. The main unit, as you can see in the picture above, is a pretty standard touchscreen in-dash interface — you can use it to flip between any in-car audio or video controls you have, and of course it has a built-in GPS unit and can do all of the usual navigation things like give you a route or check traffic.

But the interesting thing about this one is that it hooks up to your iPhone — you can just barely see Pioneer’s demo iPhone in the picture above, plugged into a dock cable that runs up through the glove compartment. And indeed, that’s where your iPhone stays. The idea with this unit is that it works as an interface for your phone while driving, rather than replacing it completely.

Continue reading Pioneer demos new iPhone-powered in-dash interface

Pioneer demos new iPhone-powered in-dash interface originally appeared on TUAW on Tue, 29 Mar 2011 19:30:00 EST. Please see our terms for use of feeds.

Permalink | Email this | Comments

Former Lala CEO says Apple bought them ‘for the people’

Lala’s Bill Ngyuen had a short video interview with Fortune, and in it Nguyen says that Apple picked up his company specifically “for the people,” not for the streaming cloud music service or any of Lala’s other assets. Fortune confronts him on the idea of Apple running its own cloud music service (as has been rumored for a while), and Nguyen suggests that instead of building its own service, Apple’s actually provided the hardware and software platforms to let any number of companies, from Pandora to Netflix, do what Lala did, and provide content over the air to whatever devices people happen to use.

That’s an interesting take for sure — from Nguyen’s perspective, it sounds like Apple is already doing what it wants to do with Lala, which is just use its employees’ knowledge of how services like this work to provide help for other companies on the App Store. We’ve all expected Apple to run a streaming service of its own, but maybe it just wants to make things easier for other companies to jump in and provide content. Who knows what we’ll see with that data center in North Carolina.

Former Lala CEO says Apple bought them ‘for the people’ originally appeared on TUAW on Tue, 29 Mar 2011 18:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Report: Windows Phone to beat iPhone in market share by 2015

IDC has released its latest report on the future of the smartphone market, and according to the predictions, there’s a lot of growth in store for Windows Phone 7. By 2015, says the firm, Windows Phones should have over 20% of the smartphone market, placing it ahead of even Apple’s iOS handsets (Apple’s market share, according to the report, is going to fall, but not by much).

That’s not impossible, given that Android has already moved ahead of Apple, and given the growing smartphone market itself, we’ll probably see a lot more Windows Phones out and about in the next year or so. But that amount of growth seems unlikely, especially as iPhone prices are dropping and customer awareness is at an all-time high thanks to Apple’s innovations. Apple’s not really going after market share, so even if Windows Phones do see that growth, it won’t hurt the company much anyway.

As our sister site Engadget points out, however, IDC also predicted that Symbian would “dominate” the smartphone market through 2013, and this latest report has the bottom falling out of that OS, dropping down to a .2% share in 2015. So essentially, it’s all just crystal ball guessing anyway.

Headline corrected.

Report: Windows Phone to beat iPhone in market share by 2015 originally appeared on TUAW on Tue, 29 Mar 2011 17:45:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Element Case Joule Chroma iPad stand works with iPad 2

We’ve covered the Element Case Joule iPad stand several times here on TUAW, even giving away some specially-made TUAW-logoed stands to several of our readers. Now Element Case has partnered with us again to introduce the new Joule Chroma line of iPad stands, and yes, we will be giving one away.

The Chroma line comes in six bright colors — orange, red, blue, pink, grey, and black — and there’s even a matching Ultrasuede liner to caress your iPad. The Joule stand is set up with rubber pads at the bottom to keep it from sliding across smooth surfaces as you tap on the iPad screen, and the tilt foot magnetically attaches to one of three ports to adjust the angle at which the iPad sits. Finally, there’s a speaker port so your tunes aren’t muffled when the iPad is nestled in the stand in portrait mode.

The Joule Chroma isn’t for everyone; at US$149.99, it’s definitely a luxury item. And you probably don’t want to use it with the Smart Cover installed, as you’ll want to use this when you’re using the iPad 2. But if you’re looking for a very classy and well-made machined aluminum product with which to prop up your iPad, the Joule Chroma is a heck of a choice.

Continue reading Element Case Joule Chroma iPad stand works with iPad 2

Element Case Joule Chroma iPad stand works with iPad 2 originally appeared on TUAW on Tue, 29 Mar 2011 16:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

iPhone 4 Personal Hotspot put to the test

It’s a good thing that I decided to sign up for AT&T’s implementation of the iOS 4.3 Personal Hotspot feature while I was standing in line for my iPad 2 a couple of weeks ago.

I’m accompanying my wife on a conference trip this week, using the time away from my consulting clients to get some serious writing done on a book update. As with many hotels that host conferences and conventions, this place charges for Wi-Fi in the room.

That’s not a problem during the fairly quiet morning hours when the bar area is empty, but once lunch rolls around and the afternoon partying starts, it’s impossible to get any work done. To avoid paying the ridiculous $10.95 daily charge for in-room Wi-Fi, I decided to put Personal Hotspot to the test.

The service, which requires a “tethering package” and a “personal hotspot package” from AT&T at a combined cost of $45 per month, was quite easy to set up. Blogger buddy Erica Sadun and I were in line at the Aspen Grove Apple Store on March 11 when I got disgusted with the flakiness of the Wi-Fi connection we (along with about 50 other people) were borrowing from the store.

My iPhone 4 had been updated to iOS 4.3 a few days before, so I knew I had Personal Hotspot capabilities — all I needed to do was call AT&T by dialing 611 on my phone. After a five-minute call, most of which was taken up with the service representative repeating that I was going to be paying an additional $45 a month, I was up and running.

Continue reading iPhone 4 Personal Hotspot put to the test

iPhone 4 Personal Hotspot put to the test originally appeared on TUAW on Tue, 29 Mar 2011 15:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

MobileMe rumored to get alternative payment methods

MobileMe LogoA recently-published report from Germany suggests Apple will soon add brand new functionality to MobileMe: the ability to subscribe to the suite of online services with a form of payment other than a credit card. The rumor discourages hope for MobileMe becoming a free offering.

According to macnews.de, one of its readers ran into trouble while trying to renew his subscription to MobileMe. Currently, it’s practically impossible for Apple’s customers to activate a subscription to the US$99.00 per year online service without a credit card. When the macnews.de reader, who doesn’t own a credit card, explained his situation to Apple’s support hotline, a support agent for the company told him, “We’re currently working on offering customers alternate payment options.” The support staffer could not provide any further details or a release date.

Once upon a time, customers like this macnews.de reader could walk into a store, purchase a boxed “copy” of MobileMe using their preferred payment method, bring the box home, and use the included activation instructions to enable or renew their MobileMe subscriptions online. But in February, Apple discontinued shipments of boxed MobileMe activation kits, leaving customers with only one option for buying the service: online with a valid credit card. This limitation could dramatically reduce MobileMe subscriptions in countries like Germany where about 80% of consumers use bank transfers to complete online transactions, according to research by The Nielsen Company. If Apple wishes to continue charging customers for all or part of its online services, it would be necessary for the company to offer more payment options.

Prompted by an email from Steve Jobs promising MobileMe would “get a lot better in 2011,” many speculate the service is due for a major overhaul this year. Today, Apple’s suite of online services allows subscribers to publish websites and photo galleries, access ad-free IMAP email, synchronize data between Macs and devices over the internet, backup and share files online, and locate lost iPhones. Rumors suggest any or all of these services will be revamped and expand to include a “media locker” to give subscribers online access to certain content purchased from the iTunes Store. Speculators hoped Apple planned to offer MobileMe free of charge, especially after the company discontinued the service’s boxed activation kits. But if Apple is exploring alternative payment options, an entirely free MobileMe seems unlikely.

[via MacNN]

MobileMe rumored to get alternative payment methods originally appeared on TUAW on Tue, 29 Mar 2011 15:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

From volcanoes to Third World Schoolchildren: Why I chose the iPad 2

Last week, I posted two stories about my iPad 2’s big trip to Guatemala for I4U and TechEye. The articles — mainly the pictures, if I’m honest — provoked a larger reader response than I’m used to dealing with. Most of the comments and emails came from female fans, excited by my rugged handsomeness. But many came from doubters — people with a reflexive negative reaction towards any Apple product.

First off, I’ll provide a dram of personal background: the iPad 2 is the first Apple product I’ve ever purchased. I’m not a fanboy and I’ve written some very nasty things about Apple that have been read by a few million folks. So I didn’t come into this experiment with an eye on providing Apple with some free PR.

Not everyone simply accused me of being an Apple fanboy. Reader “Tom” on TechEye brought up an interesting point. And made a butt joke.

“Another article by someone who thinks an expensive toy that can do the sort of things we’ve been able to do on computers for a long long long long time is somehow newsworthy may just result in an article on ‘First iPad found by proctologist’.”

Continue reading From volcanoes to Third World Schoolchildren: Why I chose the iPad 2

From volcanoes to Third World Schoolchildren: Why I chose the iPad 2 originally appeared on TUAW on Tue, 29 Mar 2011 14:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

JBL introduces OnBeat speaker dock for iPad, iPhone, iPod

If you’ve somehow avoided buying a speaker dock for your iPad, iPhone or iPod up to this point, then you might want to wait until next month before you make your decision. That’s when the JBL OnBeat speaker dock will be available at Apple and Best Buy stores.

Priced at US$149.95, the OnBeat is JBL’s first foray into the iPad dock market. They’ve obviously put some thought into the design, building a swoopy design big enough to comfortably hold an iPad in portrait or landscape orientation and packing a pair of Phoenix full-range transducer speakers that can pump out your favorite tunes with great clarity and volume. The OnBeat produces 7.5 watts of computer-optimized, DSP-equalized audio per channel.

Not only does the OnBeat dock handle your tunes, but if you happen to have a set of composite video cables handy, you can run ’em between the OnBeat and your TV. JBL supplies an IR remote with the OnBeat so you don’t have to get up from the couch to change tunes, and of course you can use the dock to keep your favorite iToy charged up.

As you can see from the image above, the OnBeat dock looks pretty cool, too. I don’t know if it’s just me, but with that iPad attached it looks like some sort of robot samurai… We’ll try to get one of these docks soon for testing and giveaway.

[via Engadget]

JBL introduces OnBeat speaker dock for iPad, iPhone, iPod originally appeared on TUAW on Tue, 29 Mar 2011 14:00:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments

Will iOS 5 get integrated voice tech?

TechCrunch is reporting the rumor today, and some sources I have close to the Siri product think it is likely happening.

Siri is that very cool personal assistant app. It allows you to ask questions which the app sends (as your voice data) to a server where it is recognized. The query is then sent off to a series of search engines to find answer, which is finally returned to the user. You can ask for things like the best area pizza shop, the status of an arriving flight, or the weather in Omaha. The speech recognition in the app comes from Nuance, the company that developed Dragon Dictation and Dragon Search.

Last year, Apple bought Siri, and is seems likely that the tech would find its way into Apple products, especially iDevices. Siri is a very clever app, and has always made a great demo on my iPhone. To have it built into iOS would be great. It appears Apple is trying to wean itself off Google services like search and maps and Siri would be a step in that direction. If you don’t have it already and want to play with Siri you can get it free at the App Store. Prepare to be impressed.

Will iOS 5 get integrated voice tech? originally appeared on TUAW on Tue, 29 Mar 2011 13:30:00 EST. Please see our terms for use of feeds.

Source | Permalink | Email this | Comments