Use the code samples below to learn about Android 8.0 (API level 26) capabilities and APIs. To download the samples in Android Studio, select the File > New > Import Samples menu option.
Note: These downloadable projects are designed for use with Gradle and Android Studio.
Autofill Framework
AutofillFramework Sample - This sample demonstrates the use of the Autofill Framework introduced in Android 8.0 (API level 26). It includes implementations of client Activities that want to be autofilled, and a Service that can provide autofill data to those Activities.
Get it on GitHub: Java | Kotlin
Picture-in-Picture Mode
PictureInPicture Sample - This sample demonstrates basic usage of Picture-in-Picture mode for handheld devices. The sample plays a video. The video keeps on playing when the app is turned into Picture-in-Picture mode. On Picture-in-Picture screen, the app shows an action item to pause or resume the video.
Get it on GitHub: Java | Kotlin
Downloadable Fonts
DownloadableFonts - This sample demonstrates how to use the Downloadable Fonts feature introduced in Android 8.0 (API level 26). Downloadable Fonts allows apps to request a certain font from a provider, instead of bundling it or downloading it themselves. This means there is no need to independently bundle the font as an asset.
Get it on GitHub: Java | Kotlin
EmojiCompat - This sample demonstrates usage of the Emoji Compatibility Support Library. You can use this library to prevent your app from showing missing emoji characters in the form of tofu (□). You can use either bundled or downloadable emoji fonts. This sample shows both usages.
Get it on GitHub: Java | Kotlin
Background Execution Limits
Bluetooth Advertisements Sample - The Bluetooth Advertisements sample was updated to comply with Android 8.0 (API level 26)'s background execution limits. The sample previously created a background service which was used to broadcast Bluetooth LE Advertisements; this process is now started as a foreground service to ensure execution.
Get it on GitHub: Java
Background Location Restrictions
LocationUpdatesPendingIntent Sample -
Shows how to request location updates using a PendingIntent
. For
apps targeting Android 7.x (API levels 24-25) but running on Android 8.0
(API level 26), developers can use either
PendingIntent.getService()
or
PendingIntent.getBroadcast()
. For apps targeting Android 8.0,
PendingIntent.getService()
does not work due to the limits
placed on services started in the background. When targeting Android 8.0,
developers should use PendingIntent.getBroadcast()
.
Get it on GitHub: Java
LocationUpdatesForegroundService Sample - Shows how to use a foreground service to get location updates when the app activities are not visible. For apps running on Android 8.0 (API level 26), background updates are limited to only a few times per hour. Using a foreground service is a way to receive more frequent updates.
Get it on GitHub: Java