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><uses-feature></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> – Back-facing camera 70 </li> 71 <li> 72 <code>android.hardware.camera.autofocus</code> – Camera that uses 73 autofocus 74 </li> 75 <li> 76 <code>android.hardware.camera.capability.manual_post_processing</code> 77 – 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> – 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> – 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> – Camera that uses flash 92 </li> 93 <li> 94 <code>android.hardware.camera.level.full</code> – Camera that uses 95 <code>FULL</code>-level image-capturing support 96 </li> 97 <li> 98 <code>android.hardware.consumerir</code> – Infrared (IR) 99 </li> 100 <li> 101 <code>android.hardware.location.gps</code> – GPS 102 </li> 103 <li> 104 <code>android.hardware.nfc</code> – Near-Field Communication (NFC) 105 </li> 106 <li> 107 <code>android.hardware.nfc.hce</code> – NFC card emulation 108 (<em>deprecated</em>) 109 </li> 110 <li> 111 <code>android.hardware.sensor.barometer</code> – Barometer (air 112 pressure) 113 </li> 114 <li> 115 <code>android.hardware.telephony</code> – Telephony, including radio 116 with data communication services 117 </li> 118 <li> 119 <code>android.hardware.telephony.cdma</code> – Telephony Code Division 120 Multiple Access (CDMA) network support 121 </li> 122 <li> 123 <code>android.hardware.telephony.gsm</code> – Telephony Global System 124 for Mobile Communications (GSM) network support 125 </li> 126 <li> 127 <code>android.hardware.type.automotive</code> – Android Auto user 128 interface 129 </li> 130 <li> 131 <code>android.hardware.type.television</code> – Television 132 (<em>deprecated</em>) 133 <li> 134 <code>android.hardware.usb.accessory</code> – USB accessory mode 135 </li> 136 <li> 137 <code>android.hardware.usb.host</code> – 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> – Accelerometer 151 (device orientation) 152 </li> 153 <li> 154 <code>android.hardware.sensor.compass</code> – Compass 155 </li> 156 <li> 157 <code>android.hardware.sensor.gyroscope</code> – Gyroscope (device 158 rotation and twist) 159 </li> 160 <li> 161 <code>android.hardware.sensor.light</code> – Light 162 </li> 163 <li> 164 <code>android.hardware.sensor.proximity</code> – Proximity (to user) 165 </li> 166 <li> 167 <code>android.hardware.sensor.stepcounter</code> – Step counter 168 </li> 169 <li> 170 <code>android.hardware.sensor.stepdetector</code> – 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> – App Widgets on the Home 214 screen 215 </li> 216 <li> 217 <code>android.software.device_admin</code> – Device policy 218 administration 219 </li> 220 <li> 221 <code>android.software.home_screen</code> – Replaces device's Home 222 screen 223 </li> 224 <li> 225 <code>android.software.input_methods</code> – 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> – UI designed for large-screen 231 viewing 232 </li> 233 <li> 234 <code>android.software.live_wallpaper</code> – Animated wallpapers 235 </li> 236 <li> 237 <code>android.software.live_tv</code> – Streaming live TV programs 238 </li> 239 <li> 240 <code>android.software.managed_users</code> – Secondary users and 241 managed profiles 242 </li> 243 <li> 244 <code>android.software.midi</code> – 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> – Session Initiation Protocol (SIP) 250 service, which supports video conferencing and instant messaging 251 </li> 252 <li> 253 <code>android.software.sip.voip</code> – 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