In this article

Nougat Features

06/02/2018

10 minutes to read

Contributors

In this article

How to get started using Xamarin.Android to develop apps for Android Nougat.

This article provides an outline of the features introduced in Android
Nougat, explains how to prepare Xamarin.Android for Android Nougat
development, and provides links to sample applications that illustrate
how to use Android Nougat features in Xamarin.Android apps.

Overview

Android Nougat
is Google's followup to Android 6.0 Marshmallow. Xamarin.Android
provides support for Android 7.x Bindings in Xamarin Android 7.0
and later. Android Nougat adds many new APIs for the Nougat features
described below; these APIs are available to Xamarin.Android apps when
you use Xamarin.Android 7.0.

Android Nougat provides many new features of interest to Xamarin.Android
developers. These features include:

Multi-window support – This enhancement makes it possible
for users to open two apps on the screen at once.

Notification Enhancements – The redesigned notifications
system in Android Nougat includes a Direct Reply feature that allow
users to quickly respond to text messages directly from the
notification UI. Also, if your app creates notifications for
received messages, the new bundled notifications feature can
bundle notifications together as a single group when more than one
message is received.

Data Saver – This feature is a new system service that
helps reduce cellular data use by apps; it gives users control over
how apps use cellular data.

This article explains how to get started building apps with Android
Nougat to try out the new features and plan migration or feature work
to target the new Android Nougat platform.

Requirements

The following is required to use the new Android Nougat features in
Xamarin-based apps:

Visual Studio or Visual Studio for Mac – If you are using Visual
Studio, version 4.2.0.628 or later of Visual Studio Tools for Xamarin is
required. If you are using Visual Studio for Mac, version 6.1.0 or later
of Visual Studio for Mac is required.

Xamarin.Android – Xamarin.Android 7.0 or later must
be installed and configured with either Visual Studio or Visual Studio for Mac.

Java Developer Kit – Xamarin Android 7.0 development requires
JDK 8
or later if you are developing for API level 24 or greater (JDK 8
also supports API levels earlier than 24). The 64-bit version of
JDK 8 is required if you are using custom controls or the Forms
Previewer.

Important

Xamarin.Android does not support JDK 9.

Note that apps must be rebuilt with Xamarin C6SR4 or later to
work reliably with Android Nougat. Because Android Nougat can link only to
NDK-provided native libraries,
existing apps using libraries such as Mono.Data.Sqlite.dll may
crash when running on Android Nougat if they are not properly rebuilt.

Getting Started

To get started using Android Nougat with Xamarin.Android, you must
download and install the latest tools and SDK packages before you can
create an Android Nougat project:

Install the latest Xamarin.Android updates from the Xamarin.

Install the Android 7.0 (API 24) packages and tools or later.

Create a new Xamarin.Android project that targets Android Nougat.

Configure an emulator or device for Android Nougat.

Each of these steps is explained in the following sections:

Install Xamarin Updates

To add Xamarin support for Android Nougat, change the updates channel in
Visual Studio or Visual Studio for Mac to the Stable channel and apply the
latest updates. If you also need features that are currently available
only in the Alpha or Beta channel, you can switch to the Alpha or Beta
channel (the Alpha and Beta channels also provide support for Android
7.x). For information about how to change the
updates (releases) channel, see
Changing the Updates Channel.

Install the Android SDK

To create a project with Xamarin Android 7.0, you must first use the
Android SDK Manager to install SDK Platform Android N (API 24) or
later. You must also install the latest Android SDK Tools:

Start a Xamarin.Android Project

Create a new Xamarin.Android project. If you are new to Android
development with Xamarin, see
Hello, Android to
learn about creating Xamarin.Android projects.

When you create an Android project, you must configure the version
settings to target Android 7.0 or later. For example, to target your
project for Android 7.0, you must configure the target Android API
level of your project to Android 7.0 (API 24 - Nougat). It is
recommended that you set your target framework level to API 24 or
later. For more about configuring Android API level levels, see
Understanding Android API Levels.

Note

Currently you must set the Minimum Android
version to Android 7.0 (API 24 - Nougat) to deploy your
app to Android Nougat devices or emulators.

Configure an Emulator or Device

If you are using an emulator, start the Android AVD Manager and create a new
device using the following settings:

If you are using a physical device such as a Nexus 5X, 6, or 9, you can
either update your device through automatic over the air (OTA) updates
or download a system image and flash your device directly. For
more information about manually updating your device to Android Nougat,
see OTA Images for Nexus Devices.

Note that Nexus 5 devices are not supported by Android Nougat.

New Features

Android Nougat introduces a variety of new features and capabilities,
such as Multi-window Support, Notifications enhancements, and Data
Saver. The following sections highlight these features and provide
links to help you get started using them in your app.

Multi-Window Mode

Multi-window mode makes it possible for users to open two apps at once
with full multitasking support. These apps can run side-by-side
(landscape) or one-above-the-other (portrait) in split-screen mode.
Users can drag a divider between the apps to resize them, and they can
cut and paste content the between apps. When two apps are presented in
multi-window mode, the selected activity continues to run while the
unselected activity is paused but still visible. Multi-window
mode does not modify the Android activity lifecycle.

You can configure how the activities of your Xamarin.Android app
support multi-window mode. For example, you can configure attributes
that set the minimum size and the default height and width of your app
in multi-window mode. You can use the new Activity.IsInMultiWindowMode
property to determine if your activity is in multi-window mode. For
example:

Enhanced Notifications

Android Nougat introduces a redesigned notification system. It features a
new Direct Reply feature that makes it possible for users to quickly
reply to notifications for incoming text messages directly in the
notification UI. Starting with Android 7.0, notification messages can be
bundled together as a single group when more than one message is
received. Also, developers can customize notification views, leverage
system decorations in notifications, and take advantage of new
notification templates when generating notifications.

Direct Reply

When a user receives a notification for incoming message, Android
Nougat makes it possible to reply to the message within the
notification (rather than open up the messaging app to send a reply).
This inline reply feature makes it possible for users to quickly
respond to an SMS or text message directly within the notification
interface:

To support this feature in your app, you must add inline reply
actions to your app via a
RemoteInput
object so that users can reply via text directly from the notification UI.
For example, the following code builds a RemoteInput for receiving text input,
builds a pending intent for the reply action, and creates a remote
input enabled action:

The Messaging Service
sample app includes C# code that demonstrates how to extend
notifications with a RemoteInput object. For more information about
adding inline reply actions to your app for Android 7.0 or later, see
the Android
Replying to Notifications
topic.

Bundled Notifications

Android Nougat can group notification messages together (for example, by
message topic) and display the group rather than each separate message.
This bundled notifications feature makes it possible for users to
dismiss or archive a group of notifications in one action. The user
can slide down to expand the bundle of notifications to view each
notification in detail:

To support bundled notifications, your app can use the
Builder.SetGroup
method to bundle similar notifications. For more information about
bundled notification groups in Android N, see the Android
Bundling Notifications
topic.

Custom Views

Android Nougat makes it possible for you to create
custom notification views with system notification headers, actions,
and expandable layouts. For more information about custom notification
views in Android Nougat, see the Android
Notification Enhancements
topic.

Data Saver

Beginning with Android Nougat, users can enable a new Data Saver
setting that blocks background data usage. This setting also signals
your app to use less data in the foreground wherever possible. The
ConnectivityManager has
been extended in Android Nougat so that your app can check whether the
user has enabled Data Saver so that your app can make an effort to
limit its data usage when Data Saver is enabled.

App Shortcuts

Android 7.1 introduced an App Shortcuts feature that makes it possible
for users to quickly start common or recommended tasks with your app.
To activate the menu of shortcuts, the user long-presses the app icon
for a second or more – the menu appears with a quick vibration.
Releasing the press causes the menu to remain:

This feature is available only API level 25 or higher.
For more information about the new App Shortcuts feature in Android 7.1,
see the Android App Shortcuts
topic.

Sample Code

Several Xamarin.Android samples are available to show you how to take
advantage of Android Nougat features:

MultiWindowPlayground
demonstrates the use of the multi-window API available in Android
Nougat. You can switch the sample app into multi-windows mode to see how
it affects the app's lifecycle and behavior.

Messaging Service
is a simple service that sends notifications using the NotificationCompatManager. It also
extends the notification with a RemoteInput object to allow Android Nougat devices to reply via
text directly from the notification without having to open an app.

Active Notifications
demonstrates how to use the NotificationManager API to tell you
how many notifications your application is currently displaying.

Scoped Directory Access
Demonstrates how to use the scoped directory access API to easily
access specific directories. This serves as an alternative to
having to define READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE
permissions in your manifest.

Direct Boot
Illustrates how to store data in a device-encrypted storage which is always available
while the device is booted both before and after any user credentials(PIN/Pattern/Password)
are entered.

Summary

This article introduced Android Nougat and explained how to install
and configure the latest tools and packages for Xamarin.Android
development on Android Nougat. It also provided an overview of the key
features available in Android Nougat, with links to example source code to
help you get started in creating apps for Android Nougat.