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
There 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
© Copyright 1994-2012 Motorola Mobility, Inc. All rights reserved.
Portions of this page are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.
Android, Android Market and YouTube are trademarks of Google, Inc.
DROID is a trademark of Lucasfilm Ltd. and its related companies. Used under license.
Source code displayed on this page may be licensed under Apache License, Version 2
Copyright © 2010, Android Open Source Project. All rights reserved unless otherwise explicitly indicated.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.