1 page.title=Android 5.0 API 2 excludeFromSuggestions=true 3 sdk.platform.version=5.0 4 sdk.platform.apiLevel=21 5 @jd:body 6 7 8 <div id="qv-wrapper"> 9 <div id="qv"> 10 11 <h2> <a href="#" onclick="hideNestedItems('#toc44',this);return false;" class="header-toggle"> <span class="more"></span> <span class="less" style="display:none"></span></a></h2> 12 13 <ol id="toc44" class="hide-nested"> 14 <li><a href="#ApiLevel"> API </a></li> 15 <li><a href="#Behaviors"></a> 16 <ol> 17 <li><a href="#ART"> Android Runtime (ART) ...</a></li> 18 <li><a href="#BehaviorNotifications">...</a></li> 19 <li><a href="#BehaviorMediaControl"> RemoteControlClient...</a></li> 20 <li><a href="#BehaviorGetRecentTasks"> getRecentTasks()...</a></li> 21 <li><a href="#64BitSupport"> Android Native Development Kit (NDK)...</a></li> 22 <li><a href="#BindService">...</a></li> 23 <li><a href="#BehaviorWebView"> WebView...</a></li> 24 </ol> 25 </li> 26 <li><a href="#UI"></a> 27 <ol> 28 <li><a href="#MaterialDesign"></a></li> 29 <li><a href="#Recents"></a></li> 30 <li><a href="#WebView">WebView </a></li> 31 <li><a href="#ScreenCapture"></a></li> 32 </ol> 33 </li> 34 <li><a href="#Notifications"></a> 35 <ol> 36 <li><a href="#LockscreenNotifications"></a></li> 37 <li><a href="#NotificationsMetadata"></a></li> 38 </ol> 39 </li> 40 <li><a href="#Graphics"></a> 41 <ol> 42 <li><a href="#OpenGLES-3-1"> OpenGL ES 3.1</a></li> 43 <li><a href="#AndroidExtensionPack">Android </a></li> 44 </ol> 45 </li> 46 <li><a href="#Media"></a> 47 <ol> 48 <li><a href="#Camera-v2"> Camera API</a></li> 49 <li><a href="#AudioPlayback"></a></li> 50 <li><a href="#MediaPlaybackControl"></a></li> 51 <li><a href="#MediaBrowsing"></a></li> 52 </ol> 53 </li> 54 <li><a href="#Storage"></a> 55 <ol> 56 <li><a href="#DirectorySelection"></a></li> 57 </ol> 58 </li> 59 <li><a href="#Wireless"></a> 60 <ol> 61 <li><a href="#Multinetwork"></a></li> 62 <li><a href="#BluetoothBroadcasting"></a></li> 63 <li><a href="#NFCEnhancements">NFC </a></li> 64 </ol> 65 </li> 66 <li><a href="#Power">Project Volta</a> 67 <ol> 68 <li><a href="#JobScheduler"></a></li> 69 <li><a href="#PowerMeasurementTools"></a> 70 </ol> 71 </li> 72 <li><a href="#Enterprise">Android </a> 73 <ol> 74 <li><a href="#ManagedProvisioning"></a></li> 75 <li><a href="#DeviceOwner"></a></li> 76 <li><a href="#ScreenPinning"></a></li> 77 </ol> 78 </li> 79 <li><a href="#System"></a> 80 <ol> 81 <li><a href="#AppUsageStatistics"></a></li> 82 </ol> 83 </li> 84 <li><a href="#Printing"></a> 85 <ol> 86 <li><a href="#PDFRender"> PDF </a></li> 87 </ol> 88 </li> 89 <li><a href="#TestingA11y"></a> 90 <ol> 91 <li><a href="#TestingA11yImprovements"></a></li> 92 </ol> 93 </li> 94 <li><a href="#IME">IME</a> 95 <ol> 96 <li><a href="#Switching"></a></li> 97 </ol> 98 </li> 99 <li><a href="#Manifest"></a> 100 <ol> 101 <li><a href="#ManifestFeatures"></a></li> 102 <li><a href="#Permissions"></a></li> 103 </ol> 104 </li> 105 </ol> 106 107 <h2>API Differences</h2> 108 <ol> 109 <li><a href="{@docRoot}sdk/api_diff/21/changes.html">API level 20 to 21 »</a> </li> 110 <li><a href="{@docRoot}sdk/api_diff/preview-21/changes.html">L Developer Preview to 21 »</a> </li> 111 </ol> 112 113 <h2>See Also</h2> 114 <ol> 115 <li><a href="{@docRoot}about/versions/android-5.0-changes.html">Android 5.0 Behavior Changes</a> </li> 116 <li><a href="{@docRoot}about/versions/lollipop.html">Android Lollipop Highlights</a> </li> 117 </ol> 118 119 </div> 120 </div> 121 122 <p>API {@sdkPlatformApiLevel}</p> 123 124 <p>Android 5.0 (<a href="{@docRoot}reference/android/os/Build.VERSION_CODES.html#LOLLIPOP">LOLLIPOP</a>) API</p> 125 126 <p> <a href="{@docRoot}about/versions/lollipop.html">Android Lollipop </a></p> 127 128 129 <h3 id="Start"></h3> 130 131 <p> Android 5.0 <a href="{@docRoot}sdk/index.html"> Android SDK</a> <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> Android 5.0 SDK </p> 132 133 <h3 id="ApiLevel"> API </h3> 134 135 <p> Android {@sdkPlatformVersion} <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> <code>"{@sdkPlatformApiLevel}"</code> Android {@sdkPlatformVersion} </p> 136 137 <p> <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> API API Android {@sdkPlatformVersion} API<a href="{@docRoot}training/basics/supporting-devices/platforms.html"></a></p> 138 139 <p> API <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels"> API </a></p> 140 141 <h2 id="Behaviors"></h2> 142 143 <p> Android Android 5.0 </p> 144 145 <h3 id="ART"> Android Runtime (ART) ...</h3> 146 147 <p>4.4 Android Runtime ART 4.4 ART Dalvik Android 5.0 ART </p> 148 149 <p> ART <a href="https://source.android.com/devices/tech/dalvik/art.html">ART </a></p> 150 151 <ul> 152 <li> (AOT) </li> 153 <li> (GC) </li> 154 <li></li> 155 </ul> 156 157 <p> Android ART Dalvik ART <a href="{@docRoot}guide/practices/verifying-apps-art.html"> Android Runtime (ART) </a></p> 158 159 <ul> 160 <li> Java Native Interface (JNI) C/C++ </li> 161 <li> () </li> 162 <li> (ART GC Android )</li> 163 </ul> 164 165 <h3 id="BehaviorNotifications">...</h3> 166 167 <p> Android 5.0 Android 5.0 <a href="{@docRoot}design/patterns/notifications.html"></a> 168 </p> 169 170 <h4 id="NotificationsMaterialDesignStyle"></h4> 171 <p> (Material Design) () </p> 172 173 <ul> 174 <li> {@link android.app.Notification.Builder#setColor(int) setColor()} </li> 175 <li> Alpha Alpha </li> 176 </ul> 177 178 <h4 id="NotificationsSoundVibration"></h4> 179 <p> {@link android.media.Ringtone}{@link android.media.MediaPlayer} {@link android.os.Vibrator} <em></em> {@link android.app.Notification.Builder} </p> 180 181 <p> {@link android.media.AudioManager#RINGER_MODE_SILENT RINGER_MODE_SILENT} {@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_NORMAL} {@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_VIBRATE}</p> 182 183 <p>Android {@link android.media.AudioManager#STREAM_MUSIC STREAM_MUSIC} Android 5.0 {@link android.media.AudioManager#STREAM_RING STREAM_RING} {@link android.media.AudioManager#STREAM_NOTIFICATION STREAM_NOTIFICATION} </p> 184 185 <h4 id="NotificationsLockscreenVisibility"></h4> 186 <p> Android 5.0 {@link android.app.Notification.Builder#setPublicVersion(android.app.Notification) setPublicVersion()}</p> 187 <p> {@link android.app.Notification.Builder#setVisibility(int) setVisibility()} {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} 188 </p> 189 190 <h4 id="NotificationsMediaPlayback"></h4> 191 <p> {@link android.app.Notification.MediaStyle} {@link android.widget.RemoteViews.RemoteView} {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} Android 5.0 {@link android.media.RemoteControlClient} <a href="#BehaviorMediaControl"> RemoteControlClient</a></p> 192 193 <h4 id="NotificationsHeadsup"></h4> 194 <p> () ()</p> 195 196 <p></p> 197 198 <ul> 199 <li> ( {@link android.app.Notification#fullScreenIntent})</li> 200 <li></li> 201 </ul> 202 203 <p></p> 204 205 <h3 id="BehaviorMediaControl"> RemoteControlClient...</h3> 206 <p>{@link android.media.RemoteControlClient} {@link android.media.session.MediaSession} API</p> 207 208 <p>Android 5.0 {@link android.media.session.MediaSession} {@link android.media.RemoteControlClient} </p> 209 210 <p>Android 5.0 {@link android.app.Notification.MediaStyle} {@link android.app.Notification.MediaStyle} {@link android.app.Notification.Builder#addAction(int, java.lang.CharSequence, android.app.PendingIntent) Notification.Builder.addAction()} {@link android.app.Notification.MediaStyle#setMediaSession(android.media.session.MediaSession.Token) setSession()} </p> 211 212 <p> {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} ()<a href="#LockscreenNotifications"></a></p> 213 214 <p> Android <a href="{@docRoot}tv/index.html">TV</a> <a href="{@docRoot}wear/index.html">Wear</a> {@link android.media.session.MediaSession} Android {@link android.media.session.MediaSession}</p> 215 216 <h3 id="BehaviorGetRecentTasks"> getRecentTasks()...</h3> 217 218 <p>Android 5.0 <em></em> (<a href="#Recents"></a>) {@link android.app.ActivityManager#getRecentTasks ActivityManager.getRecentTasks()} () {@link android.app.ActivityManager#getAppTasks() getAppTasks()} </p> 219 220 <h3 id="64BitSupport"> Android Native Development Kit (NDK)...</h3> 221 222 <p>Android 5.0 64 64 32 64 OpenSSL NDK API OpenGL ES (GLES) 3.1 </p> 223 224 <p> Android 5.0 64 <a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK </a> NDK Revision 10c NDK Revision 10c <a href="{@docRoot}tools/sdk/ndk/index.html#Revisions"></a></p> 225 226 <h3 id="BindService">...</h3> 227 228 <p>{@link android.content.Context#bindService(android.content.Intent, android.content.ServiceConnection, int) Context.bindService()} {@link android.content.Intent} {@link android.app.Service} </p> 229 230 <h3 id="BehaviorWebView"> WebView...</h3> 231 232 <p>Android 5.0 </p> 233 <ul> 234 <li><strong> API 21 </strong> 235 <ul> 236 <li><a href="https://developer.mozilla.org/en-US/docs/Security/MixedContent" class="external-link"></a> Cookie Cookie {@link android.webkit.WebSettings#setMixedContentMode(int) setMixedContentMode()} {@link android.webkit.CookieManager#setAcceptThirdPartyCookies(android.webkit.WebView, boolean) setAcceptThirdPartyCookies()}</li> 237 <li> HTML {@link android.webkit.WebView#enableSlowWholeDocumentDraw()} </li> 238 </ul> 239 </li> 240 <li><strong> API 21 </strong> Cookie</li> 241 </ul> 242 243 <h2 id="UI"></h2> 244 245 <h3 id="MaterialDesign"></h3> 246 247 <p> Android (Material Design) <em></em></p> 248 249 <ul> 250 251 <li></li> 252 <li></li> 253 <li>{@link android.support.v7.widget.RecyclerView} </li> 254 <li></li> 255 <li></li> 256 <li></li> 257 <li> ()</li> 258 <li> XML </li> 259 </ul> 260 261 <p><a href="{@docRoot}training/material/index.html"></a></p> 262 263 <h3 id="Recents"></h3> 264 265 <p><a href="{@docRoot}guide/components/recents.html"></a> {@link android.app.ActivityManager.AppTask} </p> 266 267 <p> {@link android.app.Activity#startActivity(android.content.Intent) startActivity()} {@link android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT} <a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a> {@code documentLaunchMode} {@code "intoExisting"} {@code "always"}</p> 268 269 <p> <a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a> {@link android.R.attr#maxRecents android:maxRecents} 50 (RAM 25 )</a></p> 270 271 <p> <a href="{@docRoot}reference/android/R.attr.html#persistableMode">android:persistableMode</a> {@link android.app.Activity#setTaskDescription(android.app.ActivityManager.TaskDescription) setTaskDescription()} </p> 272 273 <h3 id="WebView">WebView </h3> 274 <p>Android 5.0 {@link android.webkit.WebView} Chromium M37 Android 5.0 {@link android.webkit.WebView} 37.0.0.0 </p> 275 276 <p> {@link android.webkit.PermissionRequest} {@link android.webkit.WebView} <a href="https://developer.mozilla.org/en-US/docs/NavigatorUserMedia.getUserMedia" class="external-link">getUse Media()</a> Web API () Android {@link android.webkit.WebView}</p> 277 278 <p> <code><a href="{@docRoot}reference/android/webkit/WebChromeClient.html#onShowFileChooser(android.webkit.WebView, android.webkit.ValueCallback<android.net.Uri[]>, android.webkit.WebChromeClient.FileChooserParams)">onShowFileChooser()</a></code> {@link android.webkit.WebView} Android </p> 279 280 <p> <a href="http://webaudio.github.io/web-audio-api/" class="external-link">WebAudio</a><a href="https://www.khronos.org/webgl/" class="external-link">WebGL</a> <a href="http://www.webrtc.org/" class="external-link">WebRTC</a> <a href="https://developer.chrome.com/multidevice/webview/overview" class="external-link"> Android WebView</a></p> 281 282 <h3 id="ScreenCapture"></h3> 283 <p>Android 5.0 {@link android.media.projection} API</p> 284 285 <p> {@link android.media.projection.MediaProjection#createVirtualDisplay(java.lang.String, int, int, int, int, android.view.Surface, android.hardware.display.VirtualDisplay.Callback, android.os.Handler) createVirtualDisplay()} () {@link android.view.Surface} API {@link android.media.projection.MediaProjectionManager#createScreenCaptureIntent()} {@link android.content.Intent}</p> 286 287 <p> API {@code MediaProjectionDemo} </p> 288 289 <h2 id="Notifications"></h2> 290 291 <h3 id="LockscreenNotifications"></h3> 292 <p>Android 5.0 <em></em></p> 293 294 <p> {@link android.app.Notification.Builder#setVisibility(int) setVisibility()} </p> 295 296 <ul> 297 <li>{@link android.app.Notification#VISIBILITY_PRIVATE VISIBILITY_PRIVATE} ()</li> 298 <li>{@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}</li> 299 <li>{@link android.app.Notification#VISIBILITY_SECRET VISIBILITY_SECRET}</li> 300 </ul> 301 302 <p> {@link android.app.Notification#VISIBILITY_PRIVATE VISIBILITY_PRIVATE} 3 {@link android.app.Notification.Builder} {@link android.app.Notification.Builder#setPublicVersion(android.app.Notification) setPublicVersion()} </p> 303 304 <h3 id="NotificationsMetadata"></h3> 305 <p>Android 5.0 {@link android.app.Notification.Builder} </p> 306 307 <ul> 308 <li>{@link android.app.Notification.Builder#setCategory(java.lang.String) setCategory()}<em></em> () 309 <li>{@link android.app.Notification.Builder#setPriority(int) setPriority()} ( ) {@link android.app.Notification#PRIORITY_MAX PRIORITY_MAX} {@link android.app.Notification#PRIORITY_HIGH PRIORITY_HIGH}</li> 310 <li>{@link android.app.Notification.Builder#addPerson(java.lang.String) addPerson()}</li> 311 </ul> 312 313 <h2 id="Graphics"></h2> 314 315 <h3 id="OpenGLES-3-1"> OpenGL ES 3.1</h3> 316 <p>Android 5.0 Java OpenGL ES 3.1 OpenGL ES 3.1 </p> 317 318 <ul> 319 <li> 320 <li> 321 <li> 322 <li> 323 <li> 324 <li> 325 <li> OpenGL ES 2.0 3.0 326 </ul> 327 328 <p> Android OpenGL ES 3.1 Java {@link android.opengl.GLES31} OpenGL ES 3.1 <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> {@code android:glEsVersion} </p> 329 330 <pre> 331 <manifest> 332 <uses-feature android:glEsVersion="0x00030001" /> 333 ... 334 </manifest> 335 </pre> 336 337 <p> OpenGL ES ( OpenGL ES ) <a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL ES API </a></p> 338 339 <h3 id="AndroidExtensionPack">Android </h3> 340 341 <p> OpenGL ES 3.1 Java Android ( {@code ANDROID_extension_pack_es31a} {@code #extension} )</p> 342 343 <p></p> 344 345 <ul> 346 <li> (OpenGL ES 3.1 )</li> 347 <li></li> 348 <li>ASTC (LDR) </li> 349 <li></li> 350 <li></li> 351 </ul> 352 353 <p> Java {@link android.opengl.GLES31Ext} </p> 354 355 <pre> 356 <manifest> 357 <uses-feature android:name=android.hardware.opengles.aep 358 android:required="true" /> 359 ... 360 </manifest> 361 </pre> 362 363 <h2 id="Media"></h2> 364 365 <h3 id="Camera-v2"> Camera API</h3> 366 367 <p>Android 5.0 <a href="{@docRoot}reference/android/hardware/camera2/package-summary.html">android.hardware.camera2</a> API {@link android.hardware.camera2.CameraManager#getCameraIdList() getCameraIdList()} {@link android.hardware.camera2.CameraManager#openCamera(java.lang.String, android.hardware.camera2.CameraDevice.StateCallback, android.os.Handler) openCamera()} {@link android.hardware.camera2.CameraCaptureSession} {@link android.view.Surface} {@link android.hardware.camera2.CameraCaptureSession} </p> 368 369 <p> {@link android.hardware.camera2.CameraCaptureSession.CaptureCallback} {@link android.hardware.camera2.CameraCaptureSession.CaptureCallback} {@link android.hardware.camera2.CameraCaptureSession.CaptureCallback#onCaptureCompleted(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, android.hardware.camera2.TotalCaptureResult) onCaptureCompleted()} {@link android.hardware.camera2.CaptureResult} </p> 370 371 <p>{@link android.hardware.camera2.CameraCharacteristics} {@link android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL INFO_SUPPORTED_HARDWARE_LEVEL} </p> 372 373 <ul> 374 <li> {@link android.hardware.camera2.CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY} {@link android.hardware.Camera} API</li> 375 <li> {@link android.hardware.camera2.CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL INFO_SUPPORTED_HARDWARE_LEVEL_FULL} </li> 376 </ul> 377 378 <p> <a href="{@docRoot}reference/android/hardware/camera2/package-summary.html">Camera</a> API {@code Camera2Basic} {@code Camera2Video} </p> 379 380 <h3 id="AudioPlayback"></h3> 381 <p> {@link android.media.AudioTrack} </p> 382 <ul> 383 <li> ({@link android.media.AudioFormat#ENCODING_PCM_FLOAT ENCODING_PCM_FLOAT}) ( Android 5.0 ) 384 <li> {@link java.nio.ByteBuffer} {@link android.media.MediaCodec} 385 <li>{@link android.media.AudioTrack#WRITE_NON_BLOCKING WRITE_NON_BLOCKING} 386 </ul> 387 388 <h3 id="MediaPlaybackControl"></h3> 389 <p> API {@link android.media.session.MediaSession} {@link android.media.session.MediaController}</p> 390 391 <p> {@link android.media.session.MediaSession} {@link android.media.RemoteControlClient} Android <a href="{@docRoot}tv/index.html">TV</a> <a href="{@docRoot}wear/index.html">Wear</a> {@link android.media.session.MediaSession}</p> 392 393 <p> {@link android.media.session.MediaController} {@link android.media.session.MediaSession.Token} {@link android.media.session.MediaSession} {@link android.media.session.MediaController.TransportControls} {@link android.media.session.MediaController.TransportControls#play() play()}{@link android.media.session.MediaController.TransportControls#stop() stop()}{@link android.media.session.MediaController.TransportControls#skipToNext() skipToNext()} {@link android.media.session.MediaController.TransportControls#setRating(android.media.Rating) setRating()} {@link android.media.session.MediaController.Callback} </p> 394 395 <p> {@link android.app.Notification.MediaStyle} </p> 396 397 <h3 id="MediaBrowsing"></h3> 398 <p>Android 5.0 <a href="{@docRoot}reference/android/media/browse/package-summary.html">android.media.browse</a> API {@link android.service.media.MediaBrowserService} {@link android.service.media.MediaBrowserService} {@link android.media.session.MediaSession.Token} </p> 399 <p> {@link android.media.browse.MediaBrowser} {@link android.media.browse.MediaBrowser} {@link android.media.session.MediaSession} {@link android.media.session.MediaSession.Token} </p> 400 401 <h2 id="Storage"></h2> 402 403 <h3 id="DirectorySelection"></h3> 404 405 <p>Android 5.0 <a href="{@docRoot}guide/topics/providers/document-provider.html"></a>/</p> 406 407 <p> {@link android.content.Intent#ACTION_OPEN_DOCUMENT_TREE OPEN_DOCUMENT_TREE} {@link android.provider.DocumentsProvider} URI {@link android.provider.DocumentsContract#buildChildDocumentsUriUsingTree(android.net.Uri, java.lang.String) buildChildDocumentsUriUsingTree()}{@link android.provider.DocumentsContract#buildDocumentUriUsingTree(android.net.Uri, java.lang.String) buildDocumentUriUsingTree()} {@link android.content.ContentResolver#query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String) query()} </p> 408 409 <p> {@link android.provider.DocumentsContract#createDocument(android.content.ContentResolver, android.net.Uri, java.lang.String, java.lang.String) createDocument()} {@link android.provider.DocumentsContract#renameDocument(android.content.ContentResolver, android.net.Uri, java.lang.String) renameDocument()} {@link android.provider.DocumentsProvider#deleteDocument(java.lang.String) deleteDocument()} {@link android.provider.DocumentsContract.Document#COLUMN_FLAGS COLUMN_FLAGS} </p> 410 411 <p> {@link android.provider.DocumentsProvider} {@link android.provider.DocumentsProvider#isChildDocument(java.lang.String, java.lang.String) isChildDocument()} {@link android.provider.DocumentsContract.Root#FLAG_SUPPORTS_IS_CHILD FLAG_SUPPORTS_IS_CHILD} {@link android.provider.DocumentsContract.Root#COLUMN_FLAGS COLUMN_FLAGS}</p> 412 413 <p>Android 5.0 {@link android.provider.MediaStore} {@link android.content.Context#getExternalMediaDirs()} {@link android.content.Context#getExternalFilesDir(java.lang.String) getExternalFilesDir()} {@link android.media.MediaScannerConnection} </p> 414 415 <h2 id="Wireless"></h2> 416 417 <h3 id="Multinetwork"></h3> 418 <p>Android 5.0 API ( SUPLMMS )</p> 419 420 <p></p> 421 422 <ol> 423 <li> {@link android.net.ConnectivityManager}</li> 424 <li> {@link android.net.NetworkRequest.Builder} {@link android.net.NetworkRequest} </li> 425 <li> {@link android.net.ConnectivityManager#requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) requestNetwork()} {@link android.net.ConnectivityManager#registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) registerNetworkCallback()} {@link android.net.NetworkRequest} {@link android.net.ConnectivityManager.NetworkCallback} {@link android.net.ConnectivityManager#requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) requestNetwork()} () {@link android.net.ConnectivityManager#registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) registerNetworkCallback()} </li> 426 </ol> 427 428 <p> {@link android.net.ConnectivityManager.NetworkCallback#onAvailable(android.net.Network) onAvailable()} {@link android.net.Network} </p> 429 430 <h3 id="BluetoothBroadcasting"></h3> 431 <p>Android 4.3 <a href="{@docRoot}guide/topics/connectivity/bluetooth-le.html"></a> (<em>Bluetooth LE</em>) Android 5.0 Android Bluetooth LE<em></em> Bluetooth LE </p> 432 <p> {@link android.bluetooth.le} API Bluetooth LE {@link android.Manifest.permission#BLUETOOTH_ADMIN BLUETOOTH_ADMIN} Play </p> 433 434 <p> Bluetooth LE {@link android.bluetooth.le.BluetoothLeAdvertiser#startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback) startAdvertising()} {@link android.bluetooth.le.AdvertiseCallback} </p> 435 436 <p> Android 5.0 {@link android.bluetooth.le.ScanFilter} Bluetooth LE {@link android.bluetooth.le.BluetoothLeScanner#startScan(android.bluetooth.le.ScanCallback) startScan()} {@link android.bluetooth.le.ScanCallback} Bluetooth LE </p> 437 438 <h3 id="NFCEnhancements">NFC </h3> 439 <p>Android 5.0 NFC </p> 440 441 <ul> 442 <li> Android Beam<em></em></li> 443 <li> {@link android.nfc.NfcAdapter#invokeBeam(android.app.Activity) invokeBeam()} Android Beam NFC </li> 444 <li> {@link android.nfc.NdefRecord#createTextRecord(java.lang.String, java.lang.String) createTextRecord()} UTF-8 NDEF </li> 445 <li> <code><a href="{@docRoot}reference/android/nfc/cardemulation/CardEmulation.html#registerAidsForService(android.content.ComponentName, java.lang.String, java.util.List<java.lang.String>)">registerAidsForService()</a></code> NFC ID (AID) {@link android.nfc.cardemulation.CardEmulation#setPreferredService(android.app.Activity, android.content.ComponentName) setPreferredService()}</li> 446 </ul> 447 448 <h2 id="Power">Project Volta</h2> 449 450 <p>Android 5.0 API </p> 451 452 <h3 id="JobScheduler"></h3> 453 <p>Android 5.0 {@link android.app.job.JobScheduler} API () </p> 454 <ul> 455 <li></li> 456 <li></li> 457 <li> Wi-Fi </li> 458 <li></li> 459 460 </ul> 461 462 <p> {@link android.app.job.JobInfo} </p> 463 464 <p> {@link android.app.job.JobInfo.Builder} </p> 465 466 <ul> 467 <li></li> 468 <li></li> 469 <li></li> 470 <li></li> 471 </ul> 472 473 <p></p> 474 475 <pre> 476 JobInfo uploadTask = new JobInfo.Builder(mJobId, 477 mServiceComponent /* JobService component */) 478 .setRequiredNetworkCapabilities(JobInfo.NetworkType.UNMETERED) 479 .build(); 480 JobScheduler jobScheduler = 481 (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); 482 jobScheduler.schedule(uploadTask); 483 </pre> 484 485 <p> ( 2 <a href="{@docRoot}reference/android/content/Intent.html#ACTION_BATTERY_OKAY"></a>)</p> 486 487 <p> {@link android.app.job.JobScheduler} API {@code JobSchedulerSample} </p> 488 489 <h3 id="PowerMeasurementTools"></h3> 490 491 <p> {@code dumpsys batterystats} ID (UID) </p> 492 493 <ul> 494 <li> 495 <li> 496 <li> UID 497 <li> 498 <li> UID 499 <li> UID 500 </ul> 501 502 <p> {@code --help} 503 <pre> 504 $ adb shell dumpsys batterystats --charged <package-name> 505 </pre> 506 507 <p> {@code dumpsys} <a href="https://github.com/google/battery-historian" class="external-link">Battery Historian</a> HTML </p> 508 509 <h2 id="Enterprise">Android </h2> 510 <h3 id="ManagedProvisioning"></h3> 511 512 <p>Android 5.0 <a href="{@docRoot}guide/topics/admin/device-admin.html"></a><em></em></p> 513 514 <p> {@link android.content.Intent} {@link android.app.admin.DevicePolicyManager#ACTION_PROVISION_MANAGED_PROFILE ACTION_PROVISION_MANAGED_PROFILE} {@link android.app.admin.DeviceAdminReceiver#onProfileProvisioningComplete(android.content.Context, android.content.Intent) onProfileProvisioningComplete()} {@link android.app.admin.DevicePolicyManager#setProfileEnabled(android.content.ComponentName) setProfileEnabled()} </p> 515 516 <p> {@link android.app.admin.DevicePolicyManager#enableSystemApp(android.content.ComponentName, android.content.Intent) enableSystemApp()}</p> 517 518 <p> {@link android.content.pm.LauncherApps} {@link android.content.pm.PackageManager#getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle) getUserBadgedIcon()}</p> 519 520 <p> {@code BasicManagedProfile} </p> 521 522 <h3 id="DeviceOwner"></h3> 523 <p>Android 5.0 <em></em><a href="{@docRoot}guide/topics/admin/device-admin.html"></a> {@link android.app.admin.DevicePolicyManager} </p> 524 525 <p> NFC <a href="#ManagedProvisioning"></a></p> 526 527 <h3 id="ScreenPinning"></h3> 528 529 <p>Android 5.0 API Android Kiosk </p> 530 531 <p></p> 532 533 <ul> 534 <li><strong></strong> [] > [] > []<em></em> </li> <li><strong></strong> {@link android.app.Activity#startLockTask() startLockTask()} {@link android.app.admin.DevicePolicyManager#setLockTaskPackages(android.content.ComponentName, java.lang.String[]) setLockTaskPackages()} </li> 535 </ul> 536 537 <p></p> 538 539 <ul> 540 <li></li> 541 <li></li> 542 <li></li> 543 <li></li> 544 <li> {@link android.app.Activity#stopLockTask() stopLockTask()} </li> 545 <li></li> 546 547 </ul> 548 549 <h2 id="Printing"></h2> 550 551 <h3 id="PDFRender"> PDF </h3> 552 <p> {@link android.graphics.pdf.PdfRenderer} PDF () {@link android.os.ParcelFileDescriptor} {@link android.graphics.pdf.PdfRenderer#openPage(int) openPage()} {@link android.graphics.pdf.PdfRenderer.Page#render(android.graphics.Bitmap, android.graphics.Rect, android.graphics.Matrix, int) render()} {@link android.graphics.pdf.PdfRenderer.Page} (<a href="http://en.wikipedia.org/wiki/Tiled_rendering" class="external-link"></a>)</p> 553 554 <p> API {@code PdfRendererBasic} </p> 555 556 <h2 id="System"></h2> 557 <h3 id="AppUsageStatistics"></h3> 558 <p> {@link android.app.usage} API Android {@link android.app.ActivityManager#getRecentTasks(int, int) getRecentTasks()} API API {@code "android.permission.PACKAGE_USAGE_STATS"} [] > [] > []<em></em></p> 559 560 <p></p> 561 562 <ul> 563 <li>7 </li> 564 <li>4 </li> 565 <li>6 </li> 566 <li>2 </li> 567 </ul> 568 569 <p></p> 570 <ul> 571 <li></li> 572 <li> () </li> 573 <li> () </li> 574 <li> () </li> 575 </ul> 576 577 <h2 id="TestingA11y"> </h2> 578 579 <h3 id="TestingA11yImprovements"></h3> 580 <p>Android 5.0 </p> 581 582 <ul> 583 <li> {@link android.app.UiAutomation#getWindowAnimationFrameStats() getWindowAnimationFrameStats()} {@link android.app.UiAutomation#getWindowContentFrameStats(int) getWindowContentFrameStats()} </li> 584 585 <li> {@link android.app.UiAutomation#executeShellCommand(java.lang.String) executeShellCommand()} {@code adb shell} {@code dumpsys}{@code am} {@code content} {@code pm}</li> 586 587 <li> API ( <a href="{@docRoot}tools/help/uiautomator/index.html">{@code UiAutomator}</a>) {@link android.view.accessibility.AccessibilityWindowInfo} {@link android.accessibilityservice.AccessibilityService#getWindows() getWindows()}</li> 588 589 <li> {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction} {@link android.view.accessibility.AccessibilityNodeInfo} {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction} {@link android.view.accessibility.AccessibilityNodeInfo} API</li> 590 591 <li>Android 5.0 {@link android.speech.tts.Voice} </li> 592 </ul> 593 594 <h2 id="IME">IME</h2> 595 596 <h3 id="Switching"></h3> 597 598 <p> Android 5.0 <a href="{@docRoot}guide/topics/text/creating-input-method.html"> (IME) </a> () IME {@link android.view.inputmethod.InputMethodManager#shouldOfferSwitchingToNextInputMethod(android.os.IBinder) shouldOfferSwitchingToNextInputMethod()} </p> 599 600 <p> IME ( IME IME ) IME IME {@link android.view.inputmethod.InputMethodManager#switchToNextInputMethod(android.os.IBinder, boolean) switchToNextInputMethod()} 601 602 <p> IME API IME <a href="{@docRoot}guide/topics/text/creating-input-method.html"></a> 603 </p> 604 605 <h2 id="Manifest"></h2> 606 607 <h3 id="ManifestFeatures"></h3> 608 <p><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> </p> 609 610 <ul> 611 <li>{@link android.content.pm.PackageManager#FEATURE_AUDIO_OUTPUT}</li> 612 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING}</li> 613 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR}</li> 614 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_RAW}</li> 615 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_LEVEL_FULL}</li> 616 <li>{@link android.content.pm.PackageManager#FEATURE_GAMEPAD}</li> 617 <li>{@link android.content.pm.PackageManager#FEATURE_LIVE_TV}</li> 618 <li>{@link android.content.pm.PackageManager#FEATURE_MANAGED_USERS}</li> 619 <li>{@link android.content.pm.PackageManager#FEATURE_LEANBACK}</li> 620 <li>{@link android.content.pm.PackageManager#FEATURE_OPENGLES_EXTENSION_PACK}</li> 621 <li>{@link android.content.pm.PackageManager#FEATURE_SECURELY_REMOVES_USERS}</li> 622 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_AMBIENT_TEMPERATURE}</li> 623 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_HEART_RATE_ECG}</li> 624 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_RELATIVE_HUMIDITY}</li> 625 <li>{@link android.content.pm.PackageManager#FEATURE_VERIFIED_BOOT}</li> 626 <li>{@link android.content.pm.PackageManager#FEATURE_WEBVIEW}</li> 627 </ul> 628 629 <h3 id="Permissions"></h3> 630 631 <p><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">{@code <uses-permission>}</a> API </p> 632 633 <ul> 634 <li>{@link android.Manifest.permission#BIND_DREAM_SERVICE} API 21 <a href="{@docRoot}about/versions/android-4.2.html#Daydream">Daydream</a> </li> 635 </ul> 636