• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1page.title=App Manifest Compatibility for Chromebooks
2@jd:body
3
4<div id="qv-wrapper">
5    <div id="qv">
6      <h2>On this page</h2>
7
8      <ol>
9        <li><a href="#incompat-entries">Incompatible Manifest Entries</a></li>
10        <li>
11          <a href="#implied-features">Permissions That Imply Feature
12          Requirements</a>
13        </li>
14      </ol>
15    </div>
16  </div>
17
18<p>
19As you prepare your Android app to run on Chromebooks, you should consider the
20device features that your app uses. Chromebooks don't support all of the
21hardware and software features that are available on other devices running
22Android. If your app requires specific features that aren't supported on
23Chromebooks, it won't be available for installation on Chromebooks.
24</p>
25
26<p>
27You declare your app's requirements for hardware features and certain software
28features in the <a
29href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a>.
30This document describes the app manifest feature declarations that aren't
31compatible with Chromebooks.
32</p>
33
34<h2 id="incompat-entries">Incompatible Manifest Entries</h2>
35
36<p>
37The manifest entries listed in this section aren't currently compatible with
38Chromebooks. If your app uses any of these entries, consider removing them or
39including the <code>required="false"</code> attribute value with them so that
40your app can be installed on Chromebooks. For more information about declaring
41feature use without requiring that the feature be available on the device, see
42the guide for the <a
43href="{@docRoot}guide/topics/manifest/uses-feature-element.html#market-feature-filtering">
44<code>&lt;uses-feature&gt;</code></a> manifest element.
45</p>
46
47<p class="note"><strong>Note</strong>: See the <a
48href="{@docRoot}guide/topics/manifest/uses-feature-element.html#features-reference">
49Features Reference</a> for a complete list of app manifest features and
50descriptions.
51</p>
52
53<h3 id="incompat-hardware-features">Hardware features</h3>
54
55<p>
56Support for hardware features varies on Chromebooks. Some features aren't
57supported on any Chromebooks while others are supported on some Chromebooks.
58</p>
59
60<h4>Unsupported hardware features</h4>
61
62<p>
63The following list includes the hardware features that aren't currently
64supported on Chromebooks:
65</p>
66
67<ul>
68  <li>
69    <code>android.hardware.camera</code> &ndash; Back-facing camera
70  </li>
71  <li>
72    <code>android.hardware.camera.autofocus</code> &ndash; Camera that uses
73    autofocus
74  </li>
75  <li>
76    <code>android.hardware.camera.capability.manual_post_processing</code>&nbsp;
77    &ndash; Camera that uses the <code>MANUAL_POST_PROCESSING</code> feature,
78    including functionality for overriding auto white balance
79  </li>
80  <li>
81    <code>android.hardware.camera.capability.manual_sensor</code> &ndash; Camera
82    that uses the <code>MANUAL_SENSOR</code> feature, including auto-exposure
83    locking support
84  </li>
85  <li>
86    <code>android.hardware.camera.capability.raw</code> &ndash; Camera that uses
87    the <code>RAW</code> feature, including the ability to save DNG (raw) files
88    and provide DNG-related metadata
89  </li>
90  <li>
91    <code>android.hardware.camera.flash</code> &ndash; Camera that uses flash
92  </li>
93  <li>
94    <code>android.hardware.camera.level.full</code> &ndash; Camera that uses
95    <code>FULL</code>-level image-capturing support
96  </li>
97  <li>
98    <code>android.hardware.consumerir</code> &ndash; Infrared (IR)
99  </li>
100  <li>
101    <code>android.hardware.location.gps</code> &ndash; GPS
102  </li>
103  <li>
104    <code>android.hardware.nfc</code> &ndash; Near-Field Communication (NFC)
105  </li>
106  <li>
107    <code>android.hardware.nfc.hce</code> &ndash; NFC card emulation
108    (<em>deprecated</em>)
109  </li>
110  <li>
111    <code>android.hardware.sensor.barometer</code> &ndash; Barometer (air
112    pressure)
113  </li>
114  <li>
115    <code>android.hardware.telephony</code> &ndash; Telephony, including radio
116    with data communication services
117  </li>
118  <li>
119    <code>android.hardware.telephony.cdma</code> &ndash; Telephony Code Division
120    Multiple Access (CDMA) network support
121  </li>
122  <li>
123    <code>android.hardware.telephony.gsm</code> &ndash; Telephony Global System
124    for Mobile Communications (GSM) network support
125  </li>
126  <li>
127    <code>android.hardware.type.automotive</code> &ndash; Android Auto user
128    interface
129  </li>
130  <li>
131    <code>android.hardware.type.television</code> &ndash; Television
132    (<em>deprecated</em>)
133  <li>
134    <code>android.hardware.usb.accessory</code> &ndash; USB accessory mode
135  </li>
136  <li>
137    <code>android.hardware.usb.host</code> &ndash; USB host mode
138  </li>
139</ul>
140
141<h4>Partially-supported hardware features</h4>
142
143<p>
144The following list includes the hardware features that may be available on some
145Chromebooks:
146</p>
147
148<ul>
149  <li>
150    <code>android.hardware.sensor.accelerometer</code> &ndash; Accelerometer
151    (device orientation)
152  </li>
153  <li>
154    <code>android.hardware.sensor.compass</code> &ndash; Compass
155  </li>
156  <li>
157    <code>android.hardware.sensor.gyroscope</code> &ndash; Gyroscope (device
158    rotation and twist)
159  </li>
160  <li>
161    <code>android.hardware.sensor.light</code> &ndash; Light
162  </li>
163  <li>
164    <code>android.hardware.sensor.proximity</code> &ndash; Proximity (to user)
165  </li>
166  <li>
167    <code>android.hardware.sensor.stepcounter</code> &ndash; Step counter
168  </li>
169  <li>
170    <code>android.hardware.sensor.stepdetector</code> &ndash; Step detector
171  </li>
172</ul>
173
174<h4>Touchscreen hardware support</h4>
175
176<p>
177As of Chrome OS version M53, all Android apps that don't explicitly require the
178<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features">
179<code>android.hardware.touchscreen</code></a> feature will also work on Chrome
180OS devices that support the <a
181href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features">
182<code>android.hardware.faketouch</code></a> feature. Devices that have fake
183touch interfaces provide a user input system that emulates basic touch events.
184For example, the user could interact with a mouse or remote control to move an
185on-screen cursor, scroll through a list, and drag elements from one part of the
186screen to another.
187</p>
188
189<p>
190If you don't want your app to be installed on devices that have fake touch
191interfaces but not touchscreens, you can complete one of the following actions:
192</p>
193
194<ul>
195  <li>Exclude specific devices in the <a class="external-link"
196  href="https://play.google.com/apps/publish">Google Play Developer Console.</a>
197  </li>
198  <li>Filter devices with no touchscreen hardware by explicitly declaring <a
199  href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features">
200  <code>android.hardware.touchscreen</code></a> as being required in order to
201  install your app.</li>
202</ul>
203
204<h3 id="incompat-software-features">Software features</h3>
205
206<p>
207The following list includes the software features that aren't currently
208supported on Chromebooks:
209</p>
210
211<ul>
212  <li>
213    <code>android.software.app_widgets</code> &ndash; App Widgets on the Home
214    screen
215  </li>
216  <li>
217    <code>android.software.device_admin</code> &ndash; Device policy
218    administration
219  </li>
220  <li>
221    <code>android.software.home_screen</code> &ndash; Replaces device's Home
222    screen
223  </li>
224  <li>
225    <code>android.software.input_methods</code> &ndash; Custom input methods
226    (instances of <a href="{@docRoot}reference/android/inputmethodservice/InputMethodService.html">
227    <code>InputMethodService</code></a>)
228  </li>
229  <li>
230    <code>android.software.leanback</code> &ndash; UI designed for large-screen
231    viewing
232  </li>
233  <li>
234    <code>android.software.live_wallpaper</code> &ndash; Animated wallpapers
235  </li>
236  <li>
237    <code>android.software.live_tv</code> &ndash; Streaming live TV programs
238  </li>
239  <li>
240    <code>android.software.managed_users</code> &ndash; Secondary users and
241    managed profiles
242  </li>
243  <li>
244    <code>android.software.midi</code> &ndash; Musical Instrument Digital
245    Interface (MIDI) protocol, which supports connecting to musical instruments
246    and providing sound
247  </li>
248  <li>
249    <code>android.software.sip</code> &ndash; Session Initiation Protocol (SIP)
250    service, which supports video conferencing and instant messaging
251  </li>
252  <li>
253    <code>android.software.sip.voip</code> &ndash; Voice Over Internet Protocol
254    (VoIP) service based on SIP, which supports two-way video conferencing
255  </li>
256</ul>
257
258<h2 id="implied-features">Permissions That Imply Feature Requirements</h2>
259
260<p>
261Some permissions that you request in your manifest files can create implied
262requests for hardware and software features. By requesting these permissions,
263you'll prevent your app from being installed on Chromebooks.
264</p>
265
266<p>
267For details about how to prevent permission requests from making your app
268unavailable on Chromebooks, see the <a href="#incompat-entries">Incompatible
269Manifest Entries</a> section of this page.
270</p>
271
272<p>
273The following table shows the permissions that imply certain feature
274requirements which make an app incompatible with Chromebooks:
275</p>
276
277<p class="table-caption">
278<strong>Table 1. </strong>Device permissions that imply hardware features which
279are incompatible with Chromebooks.
280</p>
281
282<table>
283  <tr>
284    <th scope="col">Category</th>
285    <th scope="col">This Permission...</th>
286    <th scope="col">...Implies This Feature Requirement</th>
287  </tr>
288  <tr>
289    <td>Camera</td>
290    <td><code>CAMERA</code></td>
291    <td>
292      <code>android.hardware.camera</code> and<br>
293      <code>android.hardware.camera.autofocus</code>
294    </td>
295  </tr>
296  <tr>
297    <td rowspan="11">Telephony</td>
298    <td><code>CALL_PHONE</code></td>
299    <td><code>android.hardware.telephony</code></td>
300  </tr>
301  <tr>
302    <td><code>CALL_PRIVILEGED</code></td>
303    <td><code>android.hardware.telephony</code></td>
304  </tr>
305  <tr>
306    <td><code>MODIFY_PHONE_STATE</code></td>
307    <td><code>android.hardware.telephony</code></td>
308  </tr>
309  <tr>
310    <td><code>PROCESS_OUTGOING_CALLS</code></td>
311    <td><code>android.hardware.telephony</code></td>
312  </tr>
313  <tr>
314    <td><code>READ_SMSREAD_SMS</code></td>
315    <td><code>android.hardware.telephony</code></td>
316  </tr>
317  <tr>
318    <td><code>RECEIVE_SMS</code></td>
319    <td><code>android.hardware.telephony</code></td>
320  </tr>
321  <tr>
322    <td><code>RECEIVE_MMS</code></td>
323    <td><code>android.hardware.telephony</code></td>
324  </tr>
325  <tr>
326    <td><code>RECEIVE_WAP_PUSH</code></td>
327    <td><code>android.hardware.telephony</code></td>
328  </tr>
329  <tr>
330    <td><code>SEND_SMS</code></td>
331    <td><code>android.hardware.telephony</code></td>
332  </tr>
333  <tr>
334    <td><code>WRITE_APN_SETTINGS</code></td>
335    <td><code>android.hardware.telephony</code></td>
336  </tr>
337  <tr>
338    <td><code>WRITE_SMS</code></td>
339    <td><code>android.hardware.telephony</code></td>
340  </tr>
341</table>
342