annas

Telephony Services on XOOM and XOOM WiFi

by Anna Schaller (annas) Motorola on 03-28-2011 09:02 PM - last edited on 06-08-2011 01:57 PM by

Looking for Motorola HDMI Dual Screen APIs?

 

Because the Motorola XOOM is a tablet and not a phone, there is limited availability to the telephony features. Be aware of the following things that may impact your application.

 

Don't call the dialer


You cannot launch the Dialer from within your application.  It isn’t available on the XOOM. If you link a phone number to the dialer, you may want to launch another app instead.  Contacts for example.

 

Check your telephony permissions


As you know, Android Market filters applications based on matching device features to features defined in your manifest.  If features are not explicitly defined in your manifest, implied features are used for certain permissions. The following permissions are typically needed by telephony for things such as initiating phone calls or sending messages.

 

<uses-permission android:name=“CALL_PHONE” /> 
<uses-permission android:name=“CALL_PRIVILEGED” />
<uses-permission android:name=“MODIFY_PHONE_STATE
<uses-permission android:name=“PROCESS_OUTGOING_CALLS” />
<uses-permission android:name=“READ_SMS” />
<uses-permission android:name=“RECEIVE_SMS” />
<uses-permission android:name=“RECEIVE_MMS” />
<uses-permission android:name=“RECEIVE_WAP_PUSH” />
<uses-permission android:name=“SEND_SMS” />
<uses-permission android:name=“WRITE_APN_SETTINGS” />
<uses-permission android:name=“WRITE_SMS” />

These permissions will not filter your application but do imply the following feature.

 

<uses-feature                  
android:name=“android.hardware.telephony
android:required=“true”/>

If you don’t specify this feature, or set required to "true" your application will not show up on the XOOM.  You must change the required to "false" for the market to unblock your application from the device.

 

Even though you cannot initiate a phone call or modify the phone state, you can read the settings in android.telephony.TelephonyManager. The permission to READ_PHONE_STATE does not imply or need a feature request. There is a difference, however, in the data that’s returned from a CDMA/GSM device and WiFi-only device.

 

Getting (or not getting) the IMEI/MEID


wifi-only-XOOM.jpgThere are multiple configurations of the XOOM. CDMA devices have an MEID while UMTS/GMS devices have an IMEI. Because they are unique for every device they made a logical choice if your app needed a unique identifier. The WiFi-only version of the XOOM, however, does not have a radio and therefore no IMEI or MEID, as shown here.

 

TelephonyManager.getDeviceId() works on all versions of the XOOM, but the WiFi-only device will return “null”. If you need to use a unique number in your application, consider the intended use of this data.  Are you trying to keep track of the hardware or of the app?  If you’re keeping tabs on the hardware, then you definitely want the id to persist across a factory data reset. If you are keeping tabs on your app, then the value should be reset along with everything else during a factory reset. Your choices range from MAC address, which persists across resets, to serial number, which is only guaranteed on devices without telephony, to ANDROID_ID, which is reset when the device is wiped. For more information on the options see the Android Developers Blog post Identifying App Installations. Your best bet is to choose a course of action and plan for contingency.

 

Please take a few minutes to check your application against these recommendations.  When you shift from smartphones to tablets the world changes, and assumptions you made along the way may no longer be valid.

 

 

Hope this helps!

Anna Schaller

Android Technology Evangelist

 



 

 

Comments
by Ron(anon) on 02-05-2012 10:55 AM

 

 

Great story, Anna.

 

I have a Xoom Tablet and want to use mapping programs that are downloadable on the Android market for my phone.

 

Because these Apps require telephony, they are not available on my xoom market.

 

Is there anyway to bypass this?

Post a Comment
Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
About MOTODEV Blog
The MOTODEV blog keeps you updated on mobile app development news from MOTODEV and the Android developer community.

Subscribe to our RSS feed Subscribe via RSS

Follow Us:
Fan MOTODEV on Facebook Join the MOTODEV LinkedIn Group MOTODEV on YouTube

Our Blog & Comment Policy
Opinions expressed here and in any corresponding comments are the personal opinions of the original authors, not of Motorola. The content is provided for informational purposes only and is not meant to be an endorsement or representation by Motorola or any other party.

Remember, when you comment, please stay on topic and avoid spam, profanity, and anything else that violates our user guidelines. All comments require approval by Motorola and can be rejected for any reason.

For customer support issues with your Motorola phone go to the Motorola customer support website.