The Android 7.1 update introduces a variety of new features and capabilities for users and developers. This document highlights what's new for developers.
You can use the new shortcuts feature to bring users from the launcher directly to key actions within your app. Users simply long-press your app's launcher icon to reveal the app's shortcuts, then tap on a shortcut to jump to the associated action. These shortcuts are a great way to engage users, and they let you surface the functionality of your app even before users launch your app.
Each shortcut references an intent, each of which launches a specific action or task, and you can create a shortcut for any action that you can express as an intent. For example, you can create intents for sending a new text message, making a reservation, playing a video, continuing a game, loading a map location, and much more.
You can create shortcuts for your app statically by adding them to a resource file in the APK, or you can add them dynamically at runtime. Static shortcuts are ideal for common actions, and dynamic shortcuts let you highlight actions based on users' preferences, behavior, location, and so on. You can offer up to five shortcuts in each of your apps.
After your app adds shortcuts, they're available on any launcher that supports them, such as the Pixel launcher (the default launcher on Pixel devices), the Now launcher (the default launcher on Nexus devices), and other launchers that provide support.
Any app can create shortcuts, and any launcher app can add support for shortcuts. Android 7.1 provides an API for apps to register shortcuts and launchers to read the registered shortcuts. For details, see the App Shortcuts developer documentation.
Image Keyboard Support
Users often want to communicate with emojis, stickers, and other kinds of rich content. In previous versions of Android, soft keyboards (also known as input method editors or IMEs) could send only unicode emojis to apps. For rich content, apps had to either build app-specific emojis that couldn't be used in other apps, or use workarounds like sending images through an Easy Share Action or the clipboard.
Now in Android 7.1, the Android SDK includes the Commit Content API, which provides a universal way for IMEs to send images and other rich content directly to a text editor in an app. The API is also available in v13 Support Library as of revision 25.0.0.
With this API, you can build messaging apps that accept rich content from any keyboard, as well as, keyboards that can send rich content to any app. For details, see the Image Keyboard Support developer documentation.
New Professional Emoji
With Android 7.1, we’re adding new emoji that represent a wider range of professions for women as well as men. The new emoji bring parity between our existing male emoji and female emoji and are available in a variety of skin tones.
If you’re a keyboard or messaging app developer, you should start
incorporating these emoji into your apps. You can dynamically check for the
new emoji characters by calling
Enhanced Live Wallpaper Metadata
You can now provide metadata about your live wallpapers to any component that’s displaying a preview of the wallpaper, such as a wallpaper picker app. You can show existing metadata attributes such as label, description, and author, as well as new attributes for a context URL and title to link users to more information about the wallpaper.
For more information, see the Android Developers blog.
Round Icon Resources
Apps can now define circular launcher icons, which are used on devices that
support them. When a launcher requests an app icon, the framework returns
on the device build configuration. Because of this, apps should make sure to
resources when responding to launcher intents. You
can use Image Asset
Studio to design round icons.
You should make sure to test your app on devices that support the new circular icons, to see how your circular app icons look and how they are displayed. One way to test your resources is to run the Android emulator and use a Google APIs Emulator System targeting API level 25. You can also test your icons by installing your app on a Google Pixel device.
For more information about designing app launcher icons, see the Material Design guidelines.
Storage Manager Intent
Apps can now fire an
ACTION_MANAGE_STORAGE intent, taking the
user to the system's Free up space screen. For example, if
an app requires more space than is currently available, it can use this
intent to let the user delete unneeded apps and content to free up sufficient
Improved VR Thread Scheduling
Android 7.1 provides new features to improve VR thread scheduling. This is useful since virtual reality apps are very latency sensitive.
Apps can now designate one thread as a VR thread. While the app is in VR mode, the system will schedule that thread more aggressively to minimize latency. A process may only have one VR thread at a time, and the system may subject that thread to restrictions on the amount of time it can run. The setting has no effect when the app is not in VR mode.
To designate a thread as a VR thread, call the new
Demo User Hint
Apps can now check to see if the device is running as the demo user.
Apps can call the new
UserManager.isDemoUser() method to see if
the app is running in a demo user sandbox. This allows apps to customize the
starting experience to a potential customer. For example, when running as a
demo user, an app might provide more assistance to the user, or explain its
features in more detail.
APIs for Carriers and Calling Apps
The system now provides new telephony features for carriers and telephone apps, including:
- Multi-endpoint calling
- CDMA voice privacy property
- Source type support for Visual Voicemail
- Carrier configuration options for managing video telephony
New Screen Densities for Wear Devices
Android now supports several new screen densities for Wear devices, which more closely match some devices' physical specifications. This lets you fine-tune the graphics in your Wear apps to the screens they'll be displayed on, if necessary.
The new device densities are: