1 page.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> 19 As you prepare your Android app to run on Chromebooks, you should consider the 20 device features that your app uses. Chromebooks don't support all of the 21 hardware and software features that are available on other devices running 22 Android. If your app requires specific features that aren't supported on 23 Chromebooks, it won't be available for installation on Chromebooks. 24 </p> 25 26 <p> 27 You declare your app's requirements for hardware features and certain software 28 features in the <a 29 href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a>. 30 This document describes the app manifest feature declarations that aren't 31 compatible with Chromebooks. 32 </p> 33 34 <h2 id="incompat-entries">Incompatible Manifest Entries</h2> 35 36 <p> 37 The manifest entries listed in this section aren't currently compatible with 38 Chromebooks. If your app uses any of these entries, consider removing them or 39 including the <code>required="false"</code> attribute value with them so that 40 your app can be installed on Chromebooks. For more information about declaring 41 feature use without requiring that the feature be available on the device, see 42 the guide for the <a 43 href="{@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 48 href="{@docRoot}guide/topics/manifest/uses-feature-element.html#features-reference"> 49 Features Reference</a> for a complete list of app manifest features and 50 descriptions. 51 </p> 52 53 <h3 id="incompat-hardware-features">Hardware features</h3> 54 55 <p> 56 Support for hardware features varies on Chromebooks. Some features aren't 57 supported on any Chromebooks while others are supported on some Chromebooks. 58 </p> 59 60 <h4>Unsupported hardware features</h4> 61 62 <p> 63 The following list includes the hardware features that aren't currently 64 supported 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> 144 The following list includes the hardware features that may be available on some 145 Chromebooks: 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> 177 As 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 180 OS devices that support the <a 181 href="{@docRoot}guide/topics/manifest/uses-feature-element.html#touchscreen-hw-features"> 182 <code>android.hardware.faketouch</code></a> feature. Devices that have fake 183 touch interfaces provide a user input system that emulates basic touch events. 184 For example, the user could interact with a mouse or remote control to move an 185 on-screen cursor, scroll through a list, and drag elements from one part of the 186 screen to another. 187 </p> 188 189 <p> 190 If you don't want your app to be installed on devices that have fake touch 191 interfaces 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> 207 The following list includes the software features that aren't currently 208 supported 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> 261 Some permissions that you request in your manifest files can create implied 262 requests for hardware and software features. By requesting these permissions, 263 you'll prevent your app from being installed on Chromebooks. 264 </p> 265 266 <p> 267 For details about how to prevent permission requests from making your app 268 unavailable on Chromebooks, see the <a href="#incompat-entries">Incompatible 269 Manifest Entries</a> section of this page. 270 </p> 271 272 <p> 273 The following table shows the permissions that imply certain feature 274 requirements 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 279 are 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