Люди и разговоры

Инициатива «Люди и разговоры» — это рассчитанная на несколько лет инициатива Android, цель которой — повысить качество людей и разговоров на системных поверхностях телефона. Этот приоритет основан на том факте, что общение и взаимодействие с другими людьми по-прежнему остается наиболее ценной и важной функциональной областью для большинства наших пользователей всех демографических групп.

В Android 11 был представлен ряд функций для поддержки инициативы «Люди и общение».

Разговорное пространство


Пространство для разговоров — это специальная область уведомлений для разговоров между людьми в режиме реального времени.
Рисунок 1. Пространство для разговоров.

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

  • Дизайн другой: упор сделан на аватар, представляющий людей, в сочетании с приложением, ведущим разговор.
  • Нажатие на уведомление открывает разговор в приложении (или пузырь , если разговор ранее был всплывающим), а нажатие на курсор расширяет новые сообщения в тени до полной длины с полным списком опций.
  • Предлагаются действия, специфичные для разговора (некоторые при длительном нажатии):
    • Отметить этот разговор как приоритетный
    • Поместите этот разговор во всплывающее окно (отображается только в том случае, если приложение поддерживает всплывающие сообщения).
    • Уведомления о тишине для этого разговора
    • Установите собственные звуки или вибрацию для этого разговора.

Разговоры в пузырях

Если уведомление соответствует требованиям диалога, платформа запускает его в виде пузырька из ящика уведомлений.
Рис. 2. Уведомление запускается в виде всплывающего окна из панели уведомлений.

Начиная с Android 11, Bubbles можно запускать из уведомлений в разделе «Беседы». Всплывать могут только уведомления с соответствующим ярлыком. Разговоры автоматически всплывают, если они помечены как важные или появляются в тени уведомлений.

Ярлыки разговора

Ярлыки разговоров появляются в панели запуска, а также в общей таблице вместе с долгоживущими ярлыками общего доступа .

Рекомендации по API

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

Ярлыки для разговоров

Чтобы участвовать в этой инициативе, ориентированной на общение, приложениям необходимо предоставить системе долговременные ярлыки. Мы настоятельно рекомендуем использовать долгоживущие ярлыки общего доступа . При необходимости вы можете использовать динамические ярлыки в Android 11, но в будущем мы можем удалить эту опцию.

Чтобы опубликовать ярлык для разговора, вызовите методы ShortcutManagerCompat setDynamicShortcuts() , addDynamicShortcuts() или pushDynamicShortcut() (которые автоматически управляют ограничением ярлыков для разработчика). Этот ярлык должен быть долговечным и к нему должны быть прикреплены данные Person для одного или нескольких человек, идентифицирующие других участников разговора. Мы также рекомендуем вам установить LocusIdCompat .

Если разговор больше не существует, приложение может удалить ярлык с помощью removeLongLivedShortcuts() ; в этом случае система удалит все данные, связанные с разговором. Хотя ярлыки можно удалить, приложения не должны удалять кэшированные ярлыки без крайней необходимости; ярлык, вероятно, кэшируется, поскольку пользователь взаимодействовал с ним, чтобы изменить свой опыт, и удаление ярлыка отменит эти изменения, что приведет к разочарованию пользователя.

Уведомления о разговорах

Уведомление считается уведомлением о беседе, если выполняются следующие условия:

  • В уведомлении используется MessagingStyle .

  • (Только если приложение предназначено для Android 11 или более поздней версии) Уведомление связано с действительным долгоживущим динамическим или кэшированным ярлыком общего доступа. Уведомление может установить эту ассоциацию, вызвав setShortcutId() или setShortcutInfo() . Если приложение предназначено для Android 10 или более ранней версии, уведомление не обязательно должно быть связано с ярлыком, как описано в разделе запасных вариантов .

  • Пользователь не понизил уровень беседы из раздела бесед через настройки канала уведомлений на момент публикации.

Используйте локусидкомпат

Интеллект на устройстве определяет разговоры, которые, скорее всего, заинтересуют пользователя. Среди наиболее важных сигналов — давность и частота сеансов разговора в каждом разговоре. Система узнает о взаимодействии с разговором с помощью ярлыков Launcher или в уведомлении, если они правильно помечены. Однако система не знает о разговорах, которые произошли полностью в приложении, если эти взаимодействия также не отмечены тегами. Таким образом, мы настоятельно рекомендуем вам прикрепить LocusIdCompat к ярлыку и аннотировать действие или фрагмент в приложении с помощью связанного LocusIdCompat . Используйте LocusIdCompat , чтобы позволить системе предложений правильно ранжировать разговор, а также чтобы система отображала правильное время последнего взаимодействия пользователя (включая взаимодействия в приложении) с разговором. Если вы используете setShortcutInfo() для связи диалога с ярлыком, система диалогов автоматически присоединяет соответствующий LocusIdCompat .

Требования к пространству для разговоров для приложений, ориентированных на Android 10 или более раннюю версию

Если приложение не предназначено для Android 11, его сообщения все равно могут отображаться в диалоге. Однако приложение все равно должно соответствовать определенным требованиям. В этом разделе описаны требования к этим приложениям и резервное поведение, если приложение не соответствует требованиям.

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

  • Уведомление отображается в стиле беседы
  • Предлагается пузырьковая кнопка, если она реализована.
  • Функции , специфичные для разговора, предлагаются в режиме онлайн.

Если уведомление не соответствует этим требованиям, платформа использует резервные параметры для форматирования уведомления. Если уведомление соответствует требованиям любого резервного варианта, оно отображается в пространстве беседы со специальным форматированием. Если уведомление не соответствует ни одному из резервных вариантов, оно не отображается в пространстве беседы.

Резервный вариант: если используется MessagingStyle, но ярлык не указан.

Если приложение предназначено для Android 10 или более ранней версии и уведомление использует MessagingStyle , но не связывает сообщение с ярлыком, уведомление отображается в пространстве разговора со следующим поведением:

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

Резервный вариант: если MessagingStyle не используется, но приложение является признанным приложением для обмена сообщениями.

Если уведомление не использует MessagingStyle , но приложение распознается платформой как приложение для обмена сообщениями, а для параметра category уведомления установлено значение msg , уведомление отображается в пространстве диалога со следующим поведением:

  • Уведомление отображается в старом стиле, существовавшем до Android 11.
  • Никакой пузырьковой кнопки не предлагается.
  • Встроенные функции, специфичные для разговора, не предлагаются.

Руководство, использование и тестирование

В этом разделе представлены общие рекомендации по использованию и тестированию функций диалога.

Когда мне следует использовать разговоры?

Уведомления о разговорах и соответствующие ярлыки предназначены для улучшения взаимодействия с пользователем при общении в реальном времени . Например, SMS, текстовые чаты и телефонные звонки — это разговоры в реальном времени, в которых пользователи ожидают быстрого общения. Пользователи не ожидают этого от электронной почты и действий, не связанных с разговорами.

Мы предоставили пользователям возможность удалять определенный разговор из раздела бесед, если они считают, что он находится не в нужном месте.

Лучшие практики

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

  • Чтобы гарантировать, что пропущенные вызовы отображаются в тени приоритетного разговора и правильно отображаются в виджете преобразования , отформатируйте уведомления о пропущенных вызовах как conversations с категорией, установленной на CATEGORY_MISSED_CALL .
  • Предоставлять пользователям качественные аватары (104dp); в противном случае система использует инициалы человека, что менее увлекательно.
  • Не cancel уведомление о разговоре, пока пользователь не увидит сообщение. Одним из примеров этого является отмена уведомления при открытии приложения в представлении, где пользователь не может видеть или адресовать сообщение. Если пользователю не предоставляется возможность прочитать или адресовать сообщение, отмененное уведомление и связанный с ним пузырь удаляются, что приводит к потере контекста разговора.
  • Предоставьте URI data для метаданных, связанных с MIME, связанных с сообщениями, что дает вам возможность предоставлять более широкие возможности уведомлений.
  • Используйте API Android 12 status , чтобы сделать виджеты разговоров более привлекательными.
  • Используйте следующие рекомендации для ярлыков разговоров .
    • Публикуйте ярлыки для входящих и исходящих разговоров в приложении, которые не отправляют уведомления. Входящие и исходящие сообщения для одного и того же разговора должны иметь один и тот же идентификатор ярлыка. Используйте pushDynamicShortcut() чтобы публиковать свои ярлыки и сообщать об их использовании.
    • Чтобы избежать непреднамеренного обрезки аватара ярлыка, предоставьте AdaptiveIconDrawable для значка ярлыка. Дополнительные сведения см. в разделе Предоставление ярлыков изображений .
    • Чтобы помочь системе продвигать ваш ярлык, следуйте рекомендациям по получению наилучшего рейтинга . Ваш ярлык ранжируется на различных системных страницах, включая общую таблицу Android, если это ярлык для общего доступа.
    • Убедитесь, что intents ярлыков разговора запускаются непосредственно в соответствующем разговоре.
    • Используйте совместимые библиотеки, чтобы удобно настраивать ярлыки, связанные с conversation .

Тестирование уведомлений и ярлыков разговоров

Длительное нажатие на разговор открывает меню действий, связанных с разговором.
Рис. 3. Вы можете убедиться, что уведомление о разговоре настроено правильно, нажав и удерживая его и проверив, появилось ли меню разговора.

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

Добавлено отображение ярлыков при длительном нажатии на панели запуска приложений. Обязательно проверьте, что ярлыки перенаправляют вас в нужное место в приложении.

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

Виджеты разговоров

Разговоры, отображаемые в виджетах разговоров
Рис. 1. Разговоры, отображаемые в виджетах разговоров.

В Android 12 функция «Виджет беседы» основана на функции «Люди и беседы» , представленной в Android 11, позволяя приложениям отображать статус беседы в виджетах беседы.

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

Убедитесь, что ваше приложение поддерживает виджеты разговоров.

Чтобы убедиться, что ваше приложение поддерживает виджеты разговоров, вам необходимо иметь как минимум два устройства Android (оба под управлением Android 12) и две учетные записи пользователей (по одной на каждом устройстве) для обмена сообщениями. Для целей этой процедуры мы будем называть учетные записи «пользователь А» и «пользователь Б».

Пользовательский интерфейс выбора виджетов для добавления нового виджета беседы
Рис. 2. Пользовательский интерфейс выбора виджетов для добавления нового виджета беседы.

Выполните следующие шаги:

  1. На устройстве пользователя А нажмите и удерживайте кнопку запуска. В средстве выбора виджетов коснитесь нового виджета для разговора, как показано на рисунке 2.
  2. Перетащите виджет на главный экран. Список активных или недавних разговоров из приложения пользователя А должен быть доступным для выбора.
  3. Теперь на устройстве пользователя Б отправьте тестовое сообщение пользователю А.
  4. Вернувшись на устройство пользователя А, убедитесь, что виджет обновлен и отражает уведомление о сообщении от пользователя Б.
  5. Необязательно: попросите пользователя A и пользователя B установить для разговора разные значения статуса, чтобы их виджеты правильно их отражали. Список значений статуса см. в разделе ConversationStatus .
,

Инициатива «Люди и разговоры» — это рассчитанная на несколько лет инициатива Android, цель которой — повысить качество людей и разговоров на системных поверхностях телефона. Этот приоритет основан на том факте, что общение и взаимодействие с другими людьми по-прежнему остается наиболее ценной и важной функциональной областью для большинства наших пользователей всех демографических групп.

В Android 11 был представлен ряд функций для поддержки инициативы «Люди и общение».

Разговорное пространство


Пространство для разговоров — это специальная область уведомлений для разговоров между людьми в режиме реального времени.
Рисунок 1 : Пространство для разговоров.

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

  • Дизайн другой: упор сделан на аватар, представляющий людей, в сочетании с приложением, ведущим разговор.
  • Нажатие на уведомление открывает разговор в приложении (или пузырь , если разговор ранее был всплывающим), а нажатие на курсор расширяет новые сообщения в тени до полной длины с полным списком опций.
  • Предлагаются действия, специфичные для разговора (некоторые при длительном нажатии):
    • Отметить этот разговор как приоритетный
    • Поместите этот разговор во всплывающее окно (отображается только в том случае, если приложение поддерживает всплывающие сообщения).
    • Уведомления о тишине для этого разговора
    • Установите собственные звуки или вибрацию для этого разговора.

Разговоры в пузырях

Если уведомление соответствует требованиям диалога, платформа запускает его в виде пузырька из ящика уведомлений.
Рис. 2. Уведомление запускается в виде всплывающего окна из панели уведомлений.

Начиная с Android 11, Bubbles можно запускать из уведомлений в разделе «Беседы». Всплывать могут только уведомления с соответствующим ярлыком. Разговоры автоматически всплывают, если они помечены как важные или появляются в тени уведомлений.

Ярлыки разговора

Ярлыки разговоров появляются в панели запуска, а также в общей таблице вместе с долгоживущими ярлыками общего доступа .

Рекомендации по API

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

Ярлыки для разговоров

Чтобы участвовать в этой инициативе, ориентированной на общение, приложениям необходимо предоставить системе долговременные ярлыки. Мы настоятельно рекомендуем использовать долгоживущие ярлыки общего доступа . При необходимости вы можете использовать динамические ярлыки в Android 11, но в будущем мы можем удалить эту опцию.

Чтобы опубликовать ярлык для разговора, вызовите методы ShortcutManagerCompat setDynamicShortcuts() , addDynamicShortcuts() или pushDynamicShortcut() (которые автоматически управляют ограничением ярлыков для разработчика). Этот ярлык должен быть долговечным и к нему должны быть прикреплены данные Person для одного или нескольких человек, идентифицирующие других участников разговора. Мы также рекомендуем вам установить LocusIdCompat .

Если разговор больше не существует, приложение может удалить ярлык с помощью removeLongLivedShortcuts() ; в этом случае система удалит все данные, связанные с разговором. Хотя ярлыки можно удалить, приложения не должны удалять кэшированные ярлыки без крайней необходимости; ярлык, вероятно, кэшируется, поскольку пользователь взаимодействовал с ним, чтобы изменить свой опыт, и удаление ярлыка отменит эти изменения, что приведет к разочарованию пользователя.

Уведомления о разговорах

Уведомление считается уведомлением о беседе, если выполняются следующие условия:

  • В уведомлении используется MessagingStyle .

  • (Только если приложение предназначено для Android 11 или более поздней версии) Уведомление связано с действительным долгоживущим динамическим или кэшированным ярлыком общего доступа. Уведомление может установить эту ассоциацию, вызвав setShortcutId() или setShortcutInfo() . Если приложение предназначено для Android 10 или более ранней версии, уведомление не обязательно должно быть связано с ярлыком, как описано в разделе запасных вариантов .

  • Пользователь не понизил уровень беседы из раздела бесед через настройки канала уведомлений на момент публикации.

Используйте локусидкомпат

Интеллект на устройстве определяет разговоры, которые, скорее всего, заинтересуют пользователя. Среди наиболее важных сигналов — давность и частота сеансов разговора в каждом разговоре. Система узнает о взаимодействии с разговором с помощью ярлыков Launcher или в уведомлении, если они правильно помечены. Однако система не знает о разговорах, которые произошли полностью в приложении, если эти взаимодействия также не отмечены тегами. Таким образом, мы настоятельно рекомендуем вам прикрепить LocusIdCompat к ярлыку и аннотировать действие или фрагмент в приложении с помощью связанного LocusIdCompat . Используйте LocusIdCompat , чтобы позволить системе предложений правильно ранжировать разговор, а также чтобы система отображала правильное время последнего взаимодействия пользователя (включая взаимодействия в приложении) с разговором. Если вы используете setShortcutInfo() чтобы связать диалог с ярлыком, система диалогов автоматически присоединяет соответствующий LocusIdCompat .

Требования к пространству для разговоров для приложений, ориентированных на Android 10 или более раннюю версию

Если приложение не предназначено для Android 11, его сообщения все равно могут отображаться в диалоге. Однако приложение все равно должно соответствовать определенным требованиям. В этом разделе описаны требования к этим приложениям и резервное поведение, если приложение не соответствует требованиям.

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

  • Уведомление отображается в стиле беседы
  • Предлагается пузырьковая кнопка, если она реализована.
  • Функции , специфичные для разговора, предлагаются в режиме онлайн.

Если уведомление не соответствует этим требованиям, платформа использует резервные параметры для форматирования уведомления. Если уведомление соответствует требованиям любого резервного варианта, оно отображается в пространстве беседы со специальным форматированием. Если уведомление не соответствует ни одному из резервных вариантов, оно не отображается в пространстве беседы.

Резервный вариант: если используется MessagingStyle, но ярлык не указан.

Если приложение предназначено для Android 10 или более ранней версии и уведомление использует MessagingStyle , но не связывает сообщение с ярлыком, уведомление отображается в пространстве разговора со следующим поведением:

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

Резервный вариант: если MessagingStyle не используется, но приложение является признанным приложением для обмена сообщениями.

Если уведомление не использует MessagingStyle , но приложение распознается платформой как приложение для обмена сообщениями, а для параметра category уведомления установлено значение msg , уведомление отображается в пространстве диалога со следующим поведением:

  • Уведомление отображается в старом стиле, существовавшем до Android 11.
  • Никакой пузырьковой кнопки не предлагается.
  • Встроенные функции, специфичные для разговора, не предлагаются.

Руководство, использование и тестирование

В этом разделе представлены общие рекомендации по использованию и тестированию функций диалога.

Когда мне следует использовать разговоры?

Уведомления о разговорах и соответствующие ярлыки предназначены для улучшения взаимодействия с пользователем при общении в реальном времени . Например, SMS, текстовые чаты и телефонные звонки — это разговоры в реальном времени, в которых пользователи ожидают быстрого общения. Пользователи не ожидают этого от электронной почты и действий, не связанных с разговорами.

Мы предоставили пользователям возможность удалять определенный разговор из раздела бесед, если они считают, что он находится не в нужном месте.

Лучшие практики

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

  • Чтобы гарантировать, что пропущенные вызовы отображаются в тени приоритетного разговора и правильно отображаются в виджете преобразования , отформатируйте уведомления о пропущенных вызовах как conversations с категорией, установленной на CATEGORY_MISSED_CALL .
  • Предоставлять пользователям качественные аватары (104dp); в противном случае система использует инициалы человека, что менее увлекательно.
  • Не cancel уведомление о разговоре, пока пользователь не увидит сообщение. Одним из примеров этого является отмена уведомления при открытии приложения в представлении, где пользователь не может видеть или адресовать сообщение. Если пользователю не предоставляется возможность прочитать или ответить на сообщение, отмененное уведомление и связанный с ним пузырь удаляются, что приводит к потере контекста разговора.
  • Предоставьте URI data для метаданных, связанных с MIME, связанных с сообщениями, что дает вам возможность предоставлять более широкие возможности уведомлений.
  • Используйте API Android 12 status , чтобы сделать виджеты разговоров более привлекательными.
  • Используйте следующие рекомендации для ярлыков разговоров .
    • Публикуйте ярлыки для входящих и исходящих разговоров в приложении, которые не отправляют уведомления. Входящие и исходящие сообщения для одного и того же разговора должны иметь один и тот же идентификатор ярлыка. Используйте pushDynamicShortcut() чтобы публиковать свои ярлыки и сообщать об их использовании.
    • Чтобы избежать непреднамеренного обрезки аватара ярлыка, предоставьте AdaptiveIconDrawable для значка ярлыка. Дополнительные сведения см. в разделе Предоставление ярлыков изображений .
    • Чтобы помочь системе продвигать ваш ярлык, следуйте рекомендациям по получению наилучшего рейтинга . Ваш ярлык ранжируется на различных поверхностях системы, включая общую таблицу Android, если это ярлык для общего доступа.
    • Убедитесь, что intents ярлыков разговора запускаются непосредственно в соответствующем разговоре.
    • Используйте совместимые библиотеки, чтобы удобно настраивать ярлыки, связанные с conversation .

Тестирование уведомлений и ярлыков разговоров

Длительное нажатие на разговор открывает меню действий, связанных с разговором.
Рисунок 3. Вы можете убедиться, что уведомление о разговоре настроено правильно, нажав и удерживая его и проверив, появилось ли меню разговора.

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

Добавлено отображение ярлыков при длительном нажатии на панели запуска приложений. Обязательно проверьте, что ярлыки перенаправляют вас в нужное место в приложении.

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

Виджеты разговоров

Разговоры, отображаемые в виджетах разговоров
Рис. 1. Разговоры, отображаемые в виджетах разговоров.

В Android 12 функция «Виджет беседы» основана на функции «Люди и разговоры» , представленной в Android 11, позволяя приложениям отображать статус беседы в виджетах беседы.

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

Убедитесь, что ваше приложение поддерживает виджеты разговоров.

Чтобы убедиться, что ваше приложение поддерживает виджеты разговоров, вам необходимо иметь как минимум два устройства Android (оба под управлением Android 12) и две учетные записи пользователей (по одной на каждом устройстве) для обмена сообщениями. Для целей этой процедуры мы будем называть учетные записи «пользователь А» и «пользователь Б».

Пользовательский интерфейс выбора виджетов для добавления нового виджета беседы
Рис. 2. Пользовательский интерфейс выбора виджетов для добавления нового виджета беседы.

Выполните следующие шаги:

  1. На устройстве пользователя А нажмите и удерживайте кнопку запуска. В средстве выбора виджетов коснитесь нового виджета для разговора, как показано на рисунке 2.
  2. Перетащите виджет на главный экран. Список активных или недавних разговоров из приложения пользователя А должен быть доступным для выбора.
  3. Теперь на устройстве пользователя Б отправьте тестовое сообщение пользователю А.
  4. Вернувшись на устройство пользователя А, убедитесь, что виджет обновлен и отражает уведомление о сообщении от пользователя Б.
  5. Необязательно: попросите пользователя A и пользователя B установить для разговора разные значения статуса, чтобы их виджеты правильно их отражали. Список значений статуса см. в разделе ConversationStatus .
,

Инициатива «Люди и разговоры» — это рассчитанная на несколько лет инициатива Android, цель которой — повысить качество людей и разговоров на системных поверхностях телефона. Этот приоритет основан на том факте, что общение и взаимодействие с другими людьми по-прежнему остается наиболее ценной и важной функциональной областью для большинства наших пользователей всех демографических групп.

В Android 11 был представлен ряд функций для поддержки инициативы «Люди и общение».

Разговорное пространство


Пространство для разговоров — это специальная область уведомлений для разговоров между людьми в режиме реального времени.
Рисунок 1. Пространство для разговоров.

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

  • Дизайн другой: упор сделан на аватар, представляющий людей, в сочетании с приложением, ведущим разговор.
  • Нажатие на уведомление открывает разговор в приложении (или пузырь , если разговор ранее был всплывающим), а нажатие на курсор расширяет новые сообщения в тени до полной длины с полным списком опций.
  • Предлагаются действия, специфичные для разговора (некоторые при длительном нажатии):
    • Отметить этот разговор как приоритетный
    • Поместите этот разговор во всплывающее окно (отображается только в том случае, если приложение поддерживает всплывающие сообщения).
    • Уведомления о тишине для этого разговора
    • Установите собственные звуки или вибрацию для этого разговора.

Разговоры в пузырях

Если уведомление соответствует требованиям диалога, платформа запускает его в виде пузырька из ящика уведомлений.
Рис. 2. Уведомление запускается в виде всплывающего окна из панели уведомлений.

Начиная с Android 11, Bubbles можно запускать из уведомлений в разделе «Беседы». Всплывать могут только уведомления с соответствующим ярлыком. Разговоры автоматически всплывают, если они помечены как важные или появляются в тени уведомлений.

Ярлыки разговора

Ярлыки разговоров появляются в панели запуска, а также в общей таблице вместе с долгоживущими ярлыками общего доступа .

Рекомендации по API

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

Ярлыки для разговоров

Чтобы участвовать в этой инициативе, ориентированной на общение, приложениям необходимо предоставить системе долговременные ярлыки. Мы настоятельно рекомендуем использовать долгоживущие ярлыки общего доступа . При необходимости вы можете использовать динамические ярлыки в Android 11, но в будущем мы можем удалить эту опцию.

Чтобы опубликовать ярлык для разговора, вызовите методы ShortcutManagerCompat setDynamicShortcuts() , addDynamicShortcuts() или pushDynamicShortcut() (которые автоматически управляют ограничением ярлыков для разработчика). Этот ярлык должен быть долговечным и к нему должны быть прикреплены данные Person для одного или нескольких человек, идентифицирующие других участников разговора. Мы также рекомендуем вам установить LocusIdCompat .

Если разговор больше не существует, приложение может удалить ярлык с помощью removeLongLivedShortcuts() ; в этом случае система удалит все данные, связанные с разговором. Хотя ярлыки можно удалить, приложения не должны удалять кэшированные ярлыки без крайней необходимости; ярлык, вероятно, кэшируется, поскольку пользователь взаимодействовал с ним, чтобы изменить свой опыт, и удаление ярлыка отменит эти изменения, что приведет к разочарованию пользователя.

Уведомления о разговорах

Уведомление считается уведомлением о беседе, если выполняются следующие условия:

  • В уведомлении используется MessagingStyle .

  • (Только если приложение предназначено для Android 11 или более поздней версии) Уведомление связано с действительным долгоживущим динамическим или кэшированным ярлыком общего доступа. Уведомление может установить эту ассоциацию, вызвав setShortcutId() или setShortcutInfo() . Если приложение предназначено для Android 10 или более ранней версии, уведомление не обязательно должно быть связано с ярлыком, как описано в разделе запасных вариантов .

  • Пользователь не понизил уровень беседы из раздела бесед через настройки канала уведомлений на момент публикации.

Используйте локусидкомпат

Интеллект на устройстве определяет разговоры, которые, скорее всего, заинтересуют пользователя. Среди наиболее важных сигналов — давность и частота сеансов разговора в каждом разговоре. Система узнает о взаимодействии с разговором с помощью ярлыков панели запуска или в уведомлении, если они правильно помечены. Однако система не знает о разговорах, которые произошли полностью в приложении, если эти взаимодействия также не отмечены тегами. Таким образом, мы настоятельно рекомендуем вам прикрепить LocusIdCompat к ярлыку и аннотировать действие или фрагмент в приложении с помощью связанного LocusIdCompat . Используйте LocusIdCompat , чтобы позволить системе предложений правильно ранжировать разговор, а также чтобы система отображала правильное время последнего взаимодействия пользователя (включая взаимодействия в приложении) с разговором. Если вы используете setShortcutInfo() чтобы связать диалог с ярлыком, система диалогов автоматически присоединяет соответствующий LocusIdCompat .

Требования к пространству для разговоров для приложений, ориентированных на Android 10 или более раннюю версию

Если приложение не нацелено на Android 11, его сообщения все еще можно вспять в пространстве разговоров. Однако приложение все еще должно соответствовать определенным требованиям. В этом разделе описываются требования к этим приложениям и резервное поведение, если приложение не соответствует требованиям.

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

  • Уведомление отображается в стиле разговора
  • Пузырьковая кнопка предлагается, при реализации
  • Функции конкретных разговоров предлагаются встроенными

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

Запасная сторона: если используется MessagingStyle, но не предоставлен ярлык

Если приложение предназначено для Android 10 или ниже, а уведомление использует MessagingStyle , но не связывает сообщение с ярлыком, уведомление отображается в пространстве разговоров с таким поведением:

  • Уведомление отображается в стиле разговора
  • Кнопка пузырька не предлагается
  • Функции, специфичные для разговора

Запасная сторона: если MessagingStyle не используется, но приложение является признанным приложением обмена сообщениями

Если уведомление не использует MessagingStyle , но приложение распознается платформой как приложение для обмена сообщениями, а параметр category уведомления устанавливается на msg , уведомление показано в пространстве разговоров с таким поведением:

  • Уведомление отображается в старом стиле до Андоида 11
  • Кнопка пузырька не предлагается
  • Функции, специфичные для разговора

Руководство, использование и тестирование

Этот раздел содержит общее руководство о том, как использовать и проверить функции разговора.

Когда мне следует использовать разговоры?

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

Мы дали пользователям возможность удалить данный разговор из раздела разговора, если они не чувствуют, что он находится в правильном пространстве.

Лучшие практики

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

  • Чтобы убедиться, что пропущенные вызовы всплывают в приоритетном оттенке разговора и правильно отображаются в виджете преобразования , формат уведомлений о пропущенных вызовах в качестве conversations с категорией, установленной в CATEGORY_MISSED_CALL .
  • Предоставить высококачественные аватары (104dp) для пользователей; В противном случае система использует инициалы человека, что является менее привлекательным опытом.
  • Не cancel уведомление о разговоре, прежде чем пользователь не видел сообщение. Одним из примеров этого является отмена уведомления при открытии приложения в представлении, где пользователь не может видеть или обращаться к сообщению. Если пользователю не предоставляется возможность прочитать или адресовать сообщение, отменено уведомление и связанный с ним пузырь, что приводит к потере контекста разговора.
  • Предоставьте URI data для метаданных, связанных с MIME, связанными с сообщениями, что дает вам возможность предоставить более богатый опыт в уведомлениях.
  • Используйте API Android 12 status чтобы сделать виджеты разговора более привлекательными.
  • Принять следующие лучшие практики для сочетания разговоров .
    • Публикуйте ярлыки для входящих и общительных разговоров в приложении, которые не выдвигают уведомления. Входящие и исходящие сообщения для одного и того же разговора должны иметь такой же ярлык. Используйте pushDynamicShortcut() чтобы опубликовать свои ярлыки и сообщать об использовании.
    • Чтобы избежать непреднамеренной обрезки вашего ярлыка аватара, предоставьте AdaptiveIconDrawable для иконы ярлыка. См. Предоставление ярлыков для более подробной информации.
    • Чтобы помочь системе продвигать ваш ярлык, следуйте рекомендациям для получения наилучшего рейтинга . Ваш ярлык ранжируется на разных системных поверхностях, включая Android ShareShite, если это ярлык обмена.
    • Убедитесь, что ярлыки разговора intents запустить непосредственно в применимый разговор.
    • Используйте Combat Libs, чтобы удобно установить свои ярлыки в качестве связанных с conversation .

Тестирование уведомлений и ярлыков разговоров

Большое давление на разговоре открывает меню действий, связанных с разговором.
Рисунок 3 : Вы можете убедиться, что уведомление о разговоре правильно настроено путем продолжительности давления и проверить, как появляется меню разговора.

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

Добавлены ярлыки на дальнем прессе в приложении. Обязательно проверьте, что ярлыки доставляют вас в правильное место в вашем приложении.

Добавлены ярлыки общего доступа в прямой ряд ShareSeet ShareSeet при обмене контентом, который может получить ваш сочетание обмена.

Виджеты разговоров

Разговоры, отображаемые в виджетах разговора
Рисунок 1 : Разговоры, отображаемые в виджетах разговора.

В Android 12 функция разговора «Виджет» основана на функции «Люди и разговоры» , представленную в Android 11, позволяя приложениям отображать статус разговора в виджетах разговора.

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

Убедитесь, что ваше приложение поддерживает виджеты разговора

Чтобы подтвердить, что ваше приложение поддерживает виджеты разговора, вам нужно иметь как минимум два устройства Android (оба запуска Android 12) и две учетные записи пользователей (по одному на каждом устройстве) для обмена сообщениями. Для целей этой процедуры мы назовем учетные записи «Пользователь А» и «Пользователь Б.»

Пользовательский интерфейс Picker Picker, чтобы добавить новый виджет разговора
Рисунок 2 : Пользовательский интерфейс сборщика виджетов, чтобы добавить новый виджет разговора.

Выполните следующие шаги:

  1. На устройстве пользователя A, Long-Press на пусковой установке. В сборщике виджетов нажмите новый виджет для разговора, как показано на рисунке 2.
  2. Перетащите виджет на домашний экран. Список активных или недавних разговоров из приложения пользователя A должен быть выбран.
  3. Теперь на устройстве пользователя B отправьте тестовое сообщение пользователю A.
  4. Вернувшись на устройство пользователя A, убедитесь, что виджет обновлен, чтобы отразить уведомление сообщения от пользователя B.
  5. Необязательно: Попросите пользователя A и пользователя B установить разговор на различные значения статуса, чтобы убедиться, что их виджеты правильно их отражают. Список значений статуса см. В разделе «Статус» .