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"> ART(Android ) ...</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 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"> 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"> 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 </a> Android 5.0 SDK .</p> 132 133 134 <h3 id="ApiLevel"> API </h3> 135 136 <p>Android {@sdkPlatformVersion} <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> <code>"{@sdkPlatformApiLevel}"</code> Android {@sdkPlatformVersion} , .</p> 137 138 <p> Android {@sdkPlatformVersion} API . <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> API API . <a href="{@docRoot}training/basics/supporting-devices/platforms.html"> </a> .</p> 139 140 <p>API <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API ?</a> .</p> 141 142 <h2 id="Behaviors"> </h2> 143 144 <p> Android Android 5.0 .</p> 145 146 <h3 id="ART"> ART(Android ) ...</h3> 147 148 <p>4.4 ART(Android ) . 4.4 ART Dalvik . Android 5.0 ART .</p> 149 150 <p>ART <a href="https://source.android.com/devices/tech/dalvik/art.html">ART </a> . .</p> 151 152 <ul> 153 <li>AOT(Ahead-of-time) </li> 154 <li> GC( )</li> 155 <li> </li> 156 </ul> 157 158 <p> Android ART . Dalvik ART . <a href="{@docRoot}guide/practices/verifying-apps-art.html">ART(Android ) </a> . .</p> 159 160 <ul> 161 <li> JNI( ) C/C++ </li> 162 <li> (: ) </li> 163 <li> (ART Android )</li> 164 </ul> 165 166 <h3 id="BehaviorNotifications"> ...</h3> 167 168 <p> Android 5.0 . Android 5.0 <a href="{@docRoot}design/patterns/notifications.html"> </a> . 169 </p> 170 171 <h4 id="NotificationsMaterialDesignStyle"> </h4> 172 <p> ( ) . . .</p> 173 174 <ul> 175 <li>{@link android.app.Notification.Builder#setColor(int) setColor()} . </li> 176 <li> . . . , .</li> 177 </ul> 178 179 <h4 id="NotificationsSoundVibration"> </h4> 180 <p> {@link android.media.Ringtone}, {@link android.media.MediaPlayer} {@link android.os.Vibrator} , <em></em> . {@link android.app.Notification.Builder} .</p> 181 182 <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> 183 184 <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> 185 186 <h4 id="NotificationsLockscreenVisibility"> </h4> 187 <p> Android 5.0 . . . {@link android.app.Notification.Builder#setPublicVersion(android.app.Notification) setPublicVersion()} .</p> 188 <p> {@link android.app.Notification.Builder#setVisibility(int) setVisibility()} {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} . 189 </p> 190 191 <h4 id="NotificationsMediaPlayback"> </h4> 192 <p> {@link android.widget.RemoteViews.RemoteView} {@link android.app.Notification.MediaStyle} . {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} . Android 5.0 {@link android.media.RemoteControlClient} . <a href="#BehaviorMediaControl"> RemoteControlClient </a> .</p> 193 194 <h4 id="NotificationsHeadsup"> </h4> 195 <p> (, ) ( ) . . .</p> 196 197 <p> .</p> 198 199 <ul> 200 <li> ( {@link android.app.Notification#fullScreenIntent} )</li> 201 <li> </li> 202 </ul> 203 204 <p> .</p> 205 206 <h3 id="BehaviorMediaControl"> RemoteControlClient ...</h3> 207 <p>{@link android.media.RemoteControlClient} . {@link android.media.session.MediaSession} API .</p> 208 209 <p>Android 5.0 {@link android.media.session.MediaSession} {@link android.media.RemoteControlClient} . . , .</p> 210 211 <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> 212 213 <p> {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} ( ) . <a href="#LockscreenNotifications"> </a> .</p> 214 215 <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> 216 217 <h3 id="BehaviorGetRecentTasks"> getRecentTasks() ...</h3> 218 219 <p>Android 5.0 <em> </em> ( <a href="#Recents"> </a> ) , {@link android.app.ActivityManager#getRecentTasks ActivityManager.getRecentTasks()} . . (: ) . {@link android.app.ActivityManager#getAppTasks() getAppTasks()} .</p> 220 221 <h3 id="64BitSupport">Android NDK( ) ...</h3> 222 223 <p>Android 5.0 64 . 64 32 . 64 OpenSSL . NDK API OpenGL ES(GLES) 3.1 .</p> 224 225 <p>Android 5.0 64 <a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK </a> NDK 10c . NDK 10c <a href="{@docRoot}tools/sdk/ndk/index.html#Revisions"> </a> .</p> 226 227 <h3 id="BindService"> ...</h3> 228 229 <p> {@link android.content.Context#bindService(android.content.Intent, android.content.ServiceConnection, int) Context.bindService()} {@link android.content.Intent} . {@link android.app.Service} .</p> 230 231 <h3 id="BehaviorWebView"> WebView ...</h3> 232 233 <p>Android 5.0 .</p> 234 <ul> 235 <li><strong> API 21 :</strong> 236 <ul> 237 <li> <a href="https://developer.mozilla.org/en-US/docs/Security/MixedContent" class="external-link"> </a> . {@link android.webkit.WebSettings#setMixedContentMode(int) setMixedContentMode()} {@link android.webkit.CookieManager#setAcceptThirdPartyCookies(android.webkit.WebView, boolean) setAcceptThirdPartyCookies()} .</li> 238 <li> HTML . . {@link android.webkit.WebView#enableSlowWholeDocumentDraw()} .</li> 239 </ul> 240 </li> 241 <li><strong> API 20 :</strong> .</li> 242 </ul> 243 244 <h2 id="UI"> </h2> 245 246 <h3 id="MaterialDesign"> </h3> 247 248 <p> Android <em> </em> . UI . .</p> 249 250 <ul> 251 252 <li> </li> 253 <li> </li> 254 <li>{@link android.support.v7.widget.RecyclerView} </li> 255 <li> </li> 256 <li> </li> 257 <li> </li> 258 <li> UI </li> 259 <li>XML </li> 260 </ul> 261 262 <p> <a href="{@docRoot}training/material/index.html"> </a> .</p> 263 264 <h3 id="Recents"> </h3> 265 266 <p> <a href="{@docRoot}guide/components/recents.html"> </a> . . , . , , . {@link android.app.ActivityManager.AppTask} .</p> 267 268 <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> 269 270 <p> . <a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a> {@link android.R.attr#maxRecents android:maxRecents} . 50 ( RAM 25).</a></p> 271 272 <p> . <a href="{@docRoot}reference/android/R.attr.html#persistableMode">android:persistableMode</a> . {@link android.app.Activity#setTaskDescription(android.app.ActivityManager.TaskDescription) setTaskDescription()} , , .</p> 273 274 <h3 id="WebView">WebView </h3> 275 <p>Android 5.0 {@link android.webkit.WebView} Chromium M37 . Android 5.0 {@link android.webkit.WebView} 37.0.0.0 .</p> 276 277 <p> {@link android.webkit.PermissionRequest} . {@link android.webkit.WebView} <a href="https://developer.mozilla.org/en-US/docs/NavigatorUserMedia.getUserMedia" class="external-link">getUserMedia()</a> API . {@link android.webkit.WebView} Android .</p> 278 279 <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> 280 281 <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> 282 283 <h3 id="ScreenCapture"> </h3> 284 <p>Android 5.0 {@link android.media.projection} API . .</p> 285 286 <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.content.Intent}({@link android.media.projection.MediaProjectionManager#createScreenCaptureIntent()} ) .</p> 287 288 <p> API {@code MediaProjectionDemo} .</p> 289 290 <h2 id="Notifications"></h2> 291 292 <h3 id="LockscreenNotifications"> </h3> 293 <p>Android 5.0 . <em></em> .</p> 294 295 <p> . {@link android.app.Notification.Builder#setVisibility(int) setVisibility()} .</p> 296 297 <ul> 298 <li>{@link android.app.Notification#VISIBILITY_PRIVATE VISIBILITY_PRIVATE}: .</li> 299 <li>{@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}: .</li> 300 <li>{@link android.app.Notification#VISIBILITY_SECRET VISIBILITY_SECRET}: .</li> 301 </ul> 302 303 <p> {@link android.app.Notification#VISIBILITY_PRIVATE VISIBILITY_PRIVATE} . SMS '3 ' . {@link android.app.Notification.Builder} . {@link android.app.Notification.Builder#setPublicVersion(android.app.Notification) setPublicVersion()} .</p> 304 305 <h3 id="NotificationsMetadata"> </h3> 306 <p>Android 5.0 . {@link android.app.Notification.Builder} .</p> 307 308 <ul> 309 <li>{@link android.app.Notification.Builder#setCategory(java.lang.String) setCategory()}: <em></em> (: , ). 310 <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> 311 <li>{@link android.app.Notification.Builder#addPerson(java.lang.String) addPerson()}: . .</li> 312 </ul> 313 314 <h2 id="Graphics"></h2> 315 316 <h3 id="OpenGLES-3-1">OpenGL ES 3.1 </h3> 317 <p>Android 5.0 OpenGL ES 3.1 . OpenGL ES 3.1 .</p> 318 319 <ul> 320 <li> 321 <li> 322 <li> 323 <li> 324 <li> 325 <li> 326 <li>OpenGL ES 2.0 3.0 327 </ul> 328 329 <p>Android OpenGL ES 3.1 {@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} OpenGL . .</p> 330 331 <pre> 332 <manifest> 333 <uses-feature android:glEsVersion="0x00030001" /> 334 ... 335 </manifest> 336 </pre> 337 338 <p> OpenGL ES OpenGL ES <a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL ES API </a> .</p> 339 340 <h3 id="AndroidExtensionPack">Android </h3> 341 342 <p>OpenGL ES 3.1 , . Android . {@code ANDROID_extension_pack_es31a} , {@code #extension} .</p> 343 344 <p> .</p> 345 346 <ul> 347 <li> , , (OpenGL ES 3.1 )</li> 348 <li> </li> 349 <li>ASTC(LDR) </li> 350 <li> </li> 351 <li> </li> 352 </ul> 353 354 <p> {@link android.opengl.GLES31Ext} . . .</p> 355 356 <pre> 357 <manifest> 358 <uses-feature android:name=android.hardware.opengles.aep 359 android:required="true" /> 360 ... 361 </manifest> 362 </pre> 363 364 <h2 id="Media"></h2> 365 366 <h3 id="Camera-v2"> API</h3> 367 368 <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> 369 370 <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> 371 372 <p>{@link android.hardware.camera2.CameraCharacteristics} . {@link android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL INFO_SUPPORTED_HARDWARE_LEVEL} .</p> 373 374 <ul> 375 <li> {@link android.hardware.camera2.CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY} , {@link android.hardware.Camera} API .</li> 376 <li>{@link android.hardware.camera2.CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL INFO_SUPPORTED_HARDWARE_LEVEL_FULL} .</li> 377 </ul> 378 379 <p> <a href="{@docRoot}reference/android/hardware/camera2/package-summary.html"></a> API {@code Camera2Basic} {@code Camera2Video} .</p> 380 381 <h3 id="AudioPlayback"> </h3> 382 <p> {@link android.media.AudioTrack} .</p> 383 <ul> 384 <li> ({@link android.media.AudioFormat#ENCODING_PCM_FLOAT ENCODING_PCM_FLOAT}) . , . . (Android 5.0 ). 385 <li> {@link android.media.MediaCodec} {@link java.nio.ByteBuffer} . 386 <li>{@link android.media.AudioTrack#WRITE_NON_BLOCKING WRITE_NON_BLOCKING} . 387 </ul> 388 389 <h3 id="MediaPlaybackControl"> </h3> 390 <p> API UI . {@link android.media.session.MediaSession} {@link android.media.session.MediaController} UI .</p> 391 392 <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> 393 394 <p> {@link android.media.session.MediaController} . UI . {@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> 395 396 <p> {@link android.app.Notification.MediaStyle} .</p> 397 398 <h3 id="MediaBrowsing"> </h3> 399 <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> 400 <p> {@link android.media.browse.MediaBrowser} . {@link android.media.browse.MediaBrowser} {@link android.media.session.MediaSession} . , {@link android.media.session.MediaSession.Token} .</p> 401 402 <h2 id="Storage"></h2> 403 404 <h3 id="DirectorySelection"> </h3> 405 406 <p>Android 5.0 <a href="{@docRoot}guide/topics/providers/document-provider.html"> </a> , / .</p> 407 408 <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> 409 410 <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> 411 412 <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> 413 414 <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> 415 416 <h2 id="Wireless"> </h2> 417 418 <h3 id="Multinetwork"> </h3> 419 <p>Android 5.0 API . (: SUPL, MMS, ) .</p> 420 421 <p> .</p> 422 423 <ol> 424 <li>{@link android.net.ConnectivityManager} .</li> 425 <li>{@link android.net.NetworkRequest.Builder} {@link android.net.NetworkRequest} .</li> 426 <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> 427 </ol> 428 429 <p> {@link android.net.ConnectivityManager.NetworkCallback#onAvailable(android.net.Network) onAvailable()} . {@link android.net.Network} , .</p> 430 431 <h3 id="BluetoothBroadcasting"> </h3> 432 <p>Android 4.3 <a href="{@docRoot}guide/topics/connectivity/bluetooth-le.html"> </a>(<em> LE</em>) . Android 5.0 Android LE <em></em> . . LE .</p> 433 <p> {@link android.bluetooth.le} API , , LE . {@link android.Manifest.permission#BLUETOOTH_ADMIN BLUETOOTH_ADMIN} . Play (' : .') .</p> 434 435 <p> 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> 436 437 <p> Android 5.0 {@link android.bluetooth.le.ScanFilter} . LE {@link android.bluetooth.le.BluetoothLeScanner#startScan(android.bluetooth.le.ScanCallback) startScan()} . {@link android.bluetooth.le.ScanCallback} LE . </p> 438 439 <h3 id="NFCEnhancements">NFC </h3> 440 <p>Android 5.0 NFC .</p> 441 442 <ul> 443 <li> <em></em> Android Beam .</li> 444 <li>{@link android.nfc.NfcAdapter#invokeBeam(android.app.Activity) invokeBeam()} Android Beam . NFC .</li> 445 <li> {@link android.nfc.NdefRecord#createTextRecord(java.lang.String, java.lang.String) createTextRecord()} UTF-8 NDEF .</li> 446 <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 AID( ID) . {@link android.nfc.cardemulation.CardEmulation#setPreferredService(android.app.Activity, android.content.ComponentName) setPreferredService()} .</li> 447 </ul> 448 449 <h2 id="Power"> Volta</h2> 450 451 <p> , Android 5.0 . API .</p> 452 453 <h3 id="JobScheduler"> </h3> 454 <p>Android 5.0 (: ) {@link android.app.job.JobScheduler} API . .</p> 455 <ul> 456 <li> </li> 457 <li> </li> 458 <li> Wi-Fi </li> 459 <li> </li> 460 461 </ul> 462 463 <p> {@link android.app.job.JobInfo} . .</p> 464 465 <p>{@link android.app.job.JobInfo.Builder} . .</p> 466 467 <ul> 468 <li> </li> 469 <li> </li> 470 <li> </li> 471 <li> </li> 472 </ul> 473 474 <p> .</p> 475 476 <pre> 477 JobInfo uploadTask = new JobInfo.Builder(mJobId, 478 mServiceComponent /* JobService component */) 479 .setRequiredNetworkCapabilities(JobInfo.NetworkType.UNMETERED) 480 .build(); 481 JobScheduler jobScheduler = 482 (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); 483 jobScheduler.schedule(uploadTask); 484 </pre> 485 486 <p> (, 2 <a href="{@docRoot}reference/android/content/Intent.html#ACTION_BATTERY_OKAY"> </a> ) .</p> 487 488 <p>{@link android.app.job.JobScheduler} API {@code JobSchedulerSample} .</p> 489 490 <h3 id="PowerMeasurementTools"> </h3> 491 492 <p> {@code dumpsys batterystats} , UID( ID) . .</p> 493 494 <ul> 495 <li> 496 <li> 497 <li>UID 498 <li> ms 499 <li> UID 500 <li> UID 501 </ul> 502 503 <p>{@code --help} . . 504 <pre> 505 $ adb shell dumpsys batterystats --charged <package-name> 506 </pre> 507 508 <p>{@code dumpsys} <a href="https://github.com/google/battery-historian" class="external-link">Battery Historian</a> HTML . .</p> 509 510 <h2 id="Enterprise"> Android</h2> 511 <h3 id="ManagedProvisioning"> </h3> 512 513 <p>Android 5.0 . , <a href="{@docRoot}guide/topics/admin/device-admin.html"> </a> <em> </em> . , , .</p> 514 515 <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> 516 517 <p> . {@link android.app.admin.DevicePolicyManager#enableSystemApp(android.content.ComponentName, android.content.Intent) enableSystemApp()} .</p> 518 519 <p> {@link android.content.pm.LauncherApps} . . {@link android.content.pm.PackageManager#getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle) getUserBadgedIcon()} .</p> 520 521 <p> {@code BasicManagedProfile} .</p> 522 523 <h3 id="DeviceOwner"> </h3> 524 <p>Android 5.0 . <em> </em> <a href="{@docRoot}guide/topics/admin/device-admin.html"> </a>, . {@link android.app.admin.DevicePolicyManager} , . .</p> 525 526 <p> , NFC . <a href="#ManagedProvisioning"> </a> .</p> 527 528 <h3 id="ScreenPinning"> </h3> 529 530 <p>Android 5.0 API . Android , . .</p> 531 532 <p> .</p> 533 534 <ul> 535 <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> 536 </ul> 537 538 <p> .</p> 539 540 <ul> 541 <li> .</li> 542 <li> .</li> 543 <li> .</li> 544 <li> .</li> 545 <li> {@link android.app.Activity#stopLockTask() stopLockTask()} .</li> 546 <li> , .</li> 547 548 </ul> 549 550 <h2 id="Printing"> </h2> 551 552 <h3 id="PDFRender">PDF </h3> 553 <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> 554 555 <p> API {@code PdfRendererBasic} .</p> 556 557 <h2 id="System"></h2> 558 <h3 id="AppUsageStatistics"> </h3> 559 <p> {@link android.app.usage} API Android . API {@link android.app.ActivityManager#getRecentTasks(int, int) getRecentTasks()} . API {@code "android.permission.PACKAGE_USAGE_STATS"} . <em> > > </em> .</p> 560 561 <p> , , . .</p> 562 563 <ul> 564 <li> : 7</li> 565 <li> : 4</li> 566 <li> : 6</li> 567 <li> : 2</li> 568 </ul> 569 570 <p> .</p> 571 <ul> 572 <li> </li> 573 <li> (, , ) </li> 574 <li>( ) </li> 575 <li> (: ) </li> 576 </ul> 577 578 <h2 id="TestingA11y"> </h2> 579 580 <h3 id="TestingA11yImprovements"> </h3> 581 <p>Android 5.0 .</p> 582 583 <ul> 584 <li> {@link android.app.UiAutomation#getWindowAnimationFrameStats() getWindowAnimationFrameStats()} {@link android.app.UiAutomation#getWindowContentFrameStats(int) getWindowContentFrameStats()} . .</li> 585 586 <li> {@link android.app.UiAutomation#executeShellCommand(java.lang.String) executeShellCommand()} . {@code adb shell} , {@code dumpsys}, {@code am}, {@code content} {@code pm} .</li> 587 588 <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> 589 590 <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> 591 592 <li>Android 5.0 TTS( ) . {@link android.speech.tts.Voice} , TTS( ) .</li> 593 </ul> 594 595 <h2 id="IME">IME</h2> 596 597 <h3 id="Switching"> </h3> 598 599 <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> 600 601 <p> IME , IME IME . IME IME . {@link android.view.inputmethod.InputMethodManager#switchToNextInputMethod(android.os.IBinder, boolean) switchToNextInputMethod()} . 602 603 <p> IME API . IME <a href="{@docRoot}guide/topics/text/creating-input-method.html"> </a> . 604 </p> 605 606 <h2 id="Manifest"> </h2> 607 608 <h3 id="ManifestFeatures"> </h3> 609 <p> <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> , .</p> 610 611 <ul> 612 <li>{@link android.content.pm.PackageManager#FEATURE_AUDIO_OUTPUT}</li> 613 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING}</li> 614 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR}</li> 615 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_RAW}</li> 616 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_LEVEL_FULL}</li> 617 <li>{@link android.content.pm.PackageManager#FEATURE_GAMEPAD}</li> 618 <li>{@link android.content.pm.PackageManager#FEATURE_LIVE_TV}</li> 619 <li>{@link android.content.pm.PackageManager#FEATURE_MANAGED_USERS}</li> 620 <li>{@link android.content.pm.PackageManager#FEATURE_LEANBACK}</li> 621 <li>{@link android.content.pm.PackageManager#FEATURE_OPENGLES_EXTENSION_PACK}</li> 622 <li>{@link android.content.pm.PackageManager#FEATURE_SECURELY_REMOVES_USERS}</li> 623 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_AMBIENT_TEMPERATURE}</li> 624 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_HEART_RATE_ECG}</li> 625 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_RELATIVE_HUMIDITY}</li> 626 <li>{@link android.content.pm.PackageManager#FEATURE_VERIFIED_BOOT}</li> 627 <li>{@link android.content.pm.PackageManager#FEATURE_WEBVIEW}</li> 628 </ul> 629 630 <h3 id="Permissions"> </h3> 631 632 <p> <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">{@code <uses-permission>}</a> API .</p> 633 634 <ul> 635 <li>{@link android.Manifest.permission#BIND_DREAM_SERVICE}: API 21 , <a href="{@docRoot}about/versions/android-4.2.html#Daydream">Daydream</a> Daydream .</li> 636 </ul> 637