В помощь мобильному разработчику

Android Nougat плитки быстрых настроек

Александр Алексеев

quicksettingsБлагодаря Quick Setting Tiles пользователи Android получают быстрый доступ к важным системным приложениям и настройкам с помощью простого свайпа и последующего клика. На этих плитках (tiles) размещается ряд системных настроек, в том числе Wi-Fi, Bluetooth, передача геогеоданных и тип ориентации устройства в пространстве, но до сих пор для несистемных приложений доступ туда был закрыт. Однако, всё изменилось с выходом Android Nougat и API-интерфейса Quick Settings Tile, который позволяет любому разработчику добавлять туда собственные настройки с помощью всего лишь нескольких строк кода. Эти новые API-интерфейсы, добавленные в последней версии Xamarin.Android, теперь доступны в рамках Cycle 8 Service Release 1.

 

Добавление Tile Service

Quick Setting Tiles полностью управляются новой службой Android, под названием TileService, которая может быть выполнена без запуска приложения. Мы можем создать собственную TileService, унаследовав её, как только компиляционные и целевые API-интерфейсы будут установлены в 24 (Android Nougat):

 

Параметры Manifest

Наследования и создания TileService недостаточно для того, чтобы Quick Setting Tile были показаны, поскольку нам ещё нужно указать для нового сервиса конкретные метаданные и интент-фильтры. Это может быть достигнуто путём размещения нескольких атрибутов поверх класса, который мы только что создали:

 

Подпись и иконка сервиса будут отображаться в области быстрых настроек, поэтому не забудьте внести эту специфику в приложение. За счёт этого кода плитка начнёт отображаться, и пользователь сможет добавить её к быстрым настройкам.

screenshot_20161011-130432

 

События быстрых настоек

У этой плитки теперь есть четыре чрезвычайно важных события, на которые она может реагировать: добавление её или удаление, а также моменты, когда она демонстрируется и когда она, наоборот, не показывается. Каждое из этих событий подвергается действию с помощью простого переопределения:

 

Обновление Quick Setting Tiles

После того как плитка будет добавлена, сервис начнёт получать OnStartListening каждый раз, когда пользователь сделает скользящие движение сверху вниз, открывая меню быстрых настроек. Это дает нам возможность обновить плитку дополнительной информацией. Мы можем обновить плитку, получив ссылку на QsTile, а затем осуществив изменения свойств и применения Update(), например так, как показано далее:

 

Ответ на клик по плитке

Теперь настало время для реализации действительного реагирования при нажатии на нашу воображаемую новую плитку. Это делается с помощью другого метода, который мы можем переопределять, и он получил говорящие название OnClick. Когда плитка нажата, мы можем сделать одну из трех вещей:

  • Запустить фоновую службу для обработки информации
  • Открыть диалоговое окно, если пользователь нуждается в большем количестве контекстных действий
  • Запустить Activity

В этом примере мы откроем новый диалог, в котором появится очаровательная обезьяна. Важно помнить, что наша плитка может быть видимой даже в том случае, если телефон заблокирован, поэтому мы должны подсказать пользователю сперва снять блокировку перед тем, как её открывать.

 

screenshot_20161011-130453

 

В заключение

Вы можете получить полный исходный код проекта Monkeys App на GitHub или же просто скачать приложение с Google Play. Обязательно загляните в документацию нового API-интерфейса Tile.

Автор: James Montemagno
ИсточникОфициальный блог Xamarin

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

VSTS и HockeyApp
Xamarin platform

Написать ответ