Запрос разрешений на Wear OS

ключевые слова: износ, разрешения, collection_guideslandingwear путь_к_изображению: images/training/wear/multiple_permissions.png

Запрос разрешений на Wear OS аналогичен запросу разрешений в мобильных приложениях, с несколькими дополнительными вариантами использования. В этом документе предполагается, что вы понимаете, как работают разрешения Android. Если нет, ознакомьтесь с тем, как работают разрешения на Android .

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

Сценарии разрешений

Существует несколько сценариев, с которыми вы можете столкнуться при запросе опасных разрешений на Wear OS:

  • Приложение Wear запрашивает разрешения для приложения, работающего на носимом устройстве.

  • Приложение Wear запрашивает разрешения для приложения, запущенного на телефоне.

  • Приложение для телефона запрашивает разрешения для приложения, работающего на носимом устройстве.

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

Чтобы увидеть все эти сценарии в работающем приложении, ознакомьтесь с примером ExerciseSampleCompose на GitHub.

В следующих разделах объясняется каждый из этих сценариев. Более подробную информацию о запросе разрешений см. в разделе Шаблоны запросов разрешений .

Приложение Wear запрашивает разрешение на использование носимых устройств

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

Ознакомьтесь с принципами предоставления разрешений , чтобы обеспечить наилучший опыт для своих пользователей, и не забудьте проверить shouldShowRequestPermissionRationale() и предоставить дополнительную информацию по мере необходимости.

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

Несколько экранов разрешений, следующих один за другим.
Рисунок 1. Экраны разрешений, появляющиеся последовательно.

Приложение Wear запрашивает разрешение на использование телефона

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

Приложение Wear отправляет пользователя к телефону для предоставления разрешения.
Рисунок 2. Отправьте пользователя к телефону для предоставления разрешения.

Приложение для телефона запрашивает разрешение на использование носимых устройств

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

Приложение для телефона направляет пользователя к носимому устройству для предоставления разрешения.
Рисунок 3. Отправьте пользователя на носимое устройство для предоставления разрешения.

Приложение для телефона запрашивает несколько разрешений одновременно

Рисунок 4. Диалоговое окно разрешений, которое использует профиль сопутствующего устройства для запроса нескольких разрешений в одном запросе.

Приложения-партнеры на Android 12 (уровень API 31) и выше могут использовать профили сопутствующих устройств при подключении к часам. Использование профиля упрощает процесс регистрации, объединяя предоставление набора разрешений, специфичных для типа устройства, в один шаг.

Связанные разрешения предоставляются сопутствующему приложению после подключения устройства и действуют только пока устройство ассоциировано. Удаление приложения или удаление ассоциации удаляет разрешения. Подробности см. в AssociationRequest.Builder.setDeviceProfile() .

Шаблоны разрешений-запросов

Существуют различные шаблоны запроса разрешений у пользователей. В порядке приоритета они следующие:

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

  • Объясните контекст, когда причина запроса разрешения неочевидна и разрешение не является необходимым для работы приложения в целом.

Эти закономерности объясняются в следующих разделах.

Задавайте вопросы в контексте

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

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

Приложение запрашивает разрешение, когда это очевидно необходимо.
Рисунок 5. Запрос разрешения в контексте.

Обучайте в контексте

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

Используйте метод shouldShowRequestPermissionRationale() , чтобы помочь вашему приложению решить, предоставлять ли больше информации. Для получения дополнительных сведений см. раздел Запрос разрешений приложения . Кроме того, вы можете изучить, как приложение-пример динамика на GitHub обрабатывает отображение информации .

Когда возникает необходимость в разрешении, приложение объясняет, почему оно необходимо.
Рисунок 6. Обучение в контексте.

Обработка отклонений

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

На рисунке 7 показано использование значка замка для обозначения того, что функция заблокирована, поскольку пользователь не дал разрешения на ее использование.

Если пользователь отклоняет разрешение, рядом с соответствующей функцией отображается значок замка.
Рисунок 7. Значок замка, показывающий, что функция заблокирована из-за отказа в разрешении.

Когда ранее отклоненный диалог разрешения на использование носимого устройства появляется во второй раз, он включает опцию « Запретить, не показывать снова» . Если пользователь выбирает эту опцию, то единственный способ предоставить это разрешение в будущем — зайти в приложение «Настройки» носимого устройства.

Система предлагает прекратить запрашивать разрешение.
Рисунок 8. Пользователь может получить доступ к запросу на разрешение, который ранее был дважды отклонен через настройки.

Узнайте больше о том, как обрабатывать отказы в разрешении .

Разрешения для услуг

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

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

Настройки

Пользователь может изменить разрешения приложения Wear в Настройках в любое время. Когда пользователь пытается сделать что-то, требующее разрешения, сначала вызовите метод checkSelfPermission() чтобы проверить, есть ли у приложения разрешение на выполнение операции.

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

Пользователь может изменить разрешения через приложение «Настройки».
Рисунок 9. Пользователь может изменить разрешения с помощью приложения «Настройки».
{% дословно %} {% endverbatim %} {% дословно %} {% endverbatim %} ,

ключевые слова: износ, разрешения, collection_guideslandingwear путь_к_изображению: images/training/wear/multiple_permissions.png

Запрос разрешений на Wear OS аналогичен запросу разрешений в мобильных приложениях, с несколькими дополнительными вариантами использования. В этом документе предполагается, что вы понимаете, как работают разрешения Android. Если нет, ознакомьтесь с тем, как работают разрешения на Android .

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

Сценарии разрешений

Существует несколько сценариев, с которыми вы можете столкнуться при запросе опасных разрешений на Wear OS:

  • Приложение Wear запрашивает разрешения для приложения, работающего на носимом устройстве.

  • Приложение Wear запрашивает разрешения для приложения, запущенного на телефоне.

  • Приложение для телефона запрашивает разрешения для приложения, работающего на носимом устройстве.

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

Чтобы увидеть все эти сценарии в работающем приложении, ознакомьтесь с примером ExerciseSampleCompose на GitHub.

В следующих разделах объясняется каждый из этих сценариев. Более подробную информацию о запросе разрешений см. в разделе Шаблоны запросов разрешений .

Приложение Wear запрашивает разрешение на использование носимых устройств

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

Ознакомьтесь с принципами предоставления разрешений , чтобы обеспечить наилучший опыт для своих пользователей, и не забудьте проверить shouldShowRequestPermissionRationale() и предоставить дополнительную информацию по мере необходимости.

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

Несколько экранов разрешений, следующих один за другим.
Рисунок 1. Экраны разрешений, появляющиеся последовательно.

Приложение Wear запрашивает разрешение на использование телефона

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

Приложение Wear отправляет пользователя к телефону для предоставления разрешения.
Рисунок 2. Отправьте пользователя к телефону для предоставления разрешения.

Приложение для телефона запрашивает разрешение на использование носимых устройств

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

Приложение для телефона направляет пользователя к носимому устройству для предоставления разрешения.
Рисунок 3. Отправьте пользователя на носимое устройство для предоставления разрешения.

Приложение для телефона запрашивает несколько разрешений одновременно

Рисунок 4. Диалоговое окно разрешений, которое использует профиль сопутствующего устройства для запроса нескольких разрешений в одном запросе.

Приложения-партнеры на Android 12 (уровень API 31) и выше могут использовать профили сопутствующих устройств при подключении к часам. Использование профиля упрощает процесс регистрации, объединяя предоставление набора разрешений, специфичных для типа устройства, в один шаг.

Связанные разрешения предоставляются сопутствующему приложению после подключения устройства и действуют только пока устройство ассоциировано. Удаление приложения или удаление ассоциации удаляет разрешения. Подробности см. в AssociationRequest.Builder.setDeviceProfile() .

Шаблоны разрешений-запросов

Существуют различные шаблоны запроса разрешений у пользователей. В порядке приоритета они следующие:

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

  • Объясните контекст, когда причина запроса разрешения неочевидна и разрешение не является необходимым для работы приложения в целом.

Эти закономерности объясняются в следующих разделах.

Задавайте вопросы в контексте

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

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

Приложение запрашивает разрешение, когда это очевидно необходимо.
Рисунок 5. Запрос разрешения в контексте.

Обучайте в контексте

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

Используйте метод shouldShowRequestPermissionRationale() , чтобы помочь вашему приложению решить, предоставлять ли больше информации. Для получения дополнительных сведений см. раздел Запрос разрешений приложения . Кроме того, вы можете изучить, как приложение-пример динамика на GitHub обрабатывает отображение информации .

Когда возникает необходимость в разрешении, приложение объясняет, почему оно необходимо.
Рисунок 6. Обучение в контексте.

Обработка отклонений

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

На рисунке 7 показано использование значка замка для обозначения того, что функция заблокирована, поскольку пользователь не дал разрешения на ее использование.

Если пользователь отклоняет разрешение, рядом с соответствующей функцией отображается значок замка.
Рисунок 7. Значок замка, показывающий, что функция заблокирована из-за отказа в разрешении.

Когда ранее отклоненный диалог разрешения на использование носимого устройства появляется во второй раз, он включает опцию « Запретить, не показывать снова» . Если пользователь выбирает эту опцию, то единственный способ предоставить это разрешение в будущем — зайти в приложение «Настройки» носимого устройства.

Система предлагает прекратить запрашивать разрешение.
Рисунок 8. Пользователь может получить доступ к запросу на разрешение, который ранее был дважды отклонен через настройки.

Узнайте больше о том, как обрабатывать отказы в разрешении .

Разрешения для услуг

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

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

Настройки

Пользователь может изменить разрешения приложения Wear в Настройках в любое время. Когда пользователь пытается сделать что-то, требующее разрешения, сначала вызовите метод checkSelfPermission() чтобы проверить, есть ли у приложения разрешение на выполнение операции.

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

Пользователь может изменить разрешения через приложение «Настройки».
Рисунок 9. Пользователь может изменить разрешения с помощью приложения «Настройки».
{% дословно %} {% endverbatim %} {% дословно %} {% endverbatim %} ,

ключевые слова: износ, разрешения, collection_guideslandingwear путь_к_изображению: images/training/wear/multiple_permissions.png

Запрос разрешений на Wear OS аналогичен запросу разрешений в мобильных приложениях, с несколькими дополнительными вариантами использования. В этом документе предполагается, что вы понимаете, как работают разрешения Android. Если нет, ознакомьтесь с тем, как работают разрешения на Android .

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

Сценарии разрешений

Существует несколько сценариев, с которыми вы можете столкнуться при запросе опасных разрешений на Wear OS:

  • Приложение Wear запрашивает разрешения для приложения, работающего на носимом устройстве.

  • Приложение Wear запрашивает разрешения для приложения, запущенного на телефоне.

  • Приложение для телефона запрашивает разрешения для приложения, работающего на носимом устройстве.

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

Чтобы увидеть все эти сценарии в работающем приложении, ознакомьтесь с примером ExerciseSampleCompose на GitHub.

В следующих разделах объясняется каждый из этих сценариев. Более подробную информацию о запросе разрешений см. в разделе Шаблоны запросов разрешений .

Приложение Wear запрашивает разрешение на использование носимых устройств

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

Ознакомьтесь с принципами предоставления разрешений , чтобы обеспечить наилучший опыт для своих пользователей, и не забудьте проверить shouldShowRequestPermissionRationale() и предоставить дополнительную информацию по мере необходимости.

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

Несколько экранов разрешений, следующих один за другим.
Рисунок 1. Экраны разрешений, появляющиеся последовательно.

Приложение Wear запрашивает разрешение на использование телефона

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

Приложение Wear отправляет пользователя к телефону для предоставления разрешения.
Рисунок 2. Отправьте пользователя к телефону для предоставления разрешения.

Приложение для телефона запрашивает разрешение на использование носимых устройств

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

Приложение для телефона направляет пользователя к носимому устройству для предоставления разрешения.
Рисунок 3. Отправьте пользователя на носимое устройство для предоставления разрешения.

Приложение для телефона запрашивает несколько разрешений одновременно

Рисунок 4. Диалоговое окно разрешений, которое использует профиль сопутствующего устройства для запроса нескольких разрешений в одном запросе.

Приложения-партнеры на Android 12 (уровень API 31) и выше могут использовать профили сопутствующих устройств при подключении к часам. Использование профиля упрощает процесс регистрации, объединяя предоставление набора разрешений, специфичных для типа устройства, в один шаг.

Связанные разрешения предоставляются сопутствующему приложению после подключения устройства и действуют только пока устройство ассоциировано. Удаление приложения или удаление ассоциации удаляет разрешения. Подробности см. в AssociationRequest.Builder.setDeviceProfile() .

Шаблоны разрешений-запросов

Существуют различные шаблоны запроса разрешений у пользователей. В порядке приоритета они следующие:

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

  • Объясните контекст, когда причина запроса разрешения неочевидна и разрешение не является необходимым для работы приложения в целом.

Эти закономерности объясняются в следующих разделах.

Задавайте вопросы в контексте

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

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

Приложение запрашивает разрешение, когда это очевидно необходимо.
Рисунок 5. Запрос разрешения в контексте.

Обучайте в контексте

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

Используйте метод shouldShowRequestPermissionRationale() , чтобы помочь вашему приложению решить, предоставлять ли больше информации. Для получения дополнительных сведений см. раздел Запрос разрешений приложения . Кроме того, вы можете изучить, как приложение-пример динамика на GitHub обрабатывает отображение информации .

Когда возникает необходимость в разрешении, приложение объясняет, почему оно необходимо.
Рисунок 6. Обучение в контексте.

Обработка отклонений

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

На рисунке 7 показано использование значка замка для обозначения того, что функция заблокирована, поскольку пользователь не дал разрешения на ее использование.

Если пользователь отклоняет разрешение, рядом с соответствующей функцией отображается значок замка.
Рисунок 7. Значок замка, показывающий, что функция заблокирована из-за отказа в разрешении.

Когда ранее отклоненный диалог разрешения на использование носимого устройства появляется во второй раз, он включает опцию « Запретить, не показывать снова» . Если пользователь выбирает эту опцию, то единственный способ предоставить это разрешение в будущем — зайти в приложение «Настройки» носимого устройства.

Система предлагает прекратить запрашивать разрешение.
Рисунок 8. Пользователь может получить доступ к запросу на разрешение, который ранее был дважды отклонен через настройки.

Узнайте больше о том, как обрабатывать отказы в разрешении .

Разрешения для услуг

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

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

Настройки

Пользователь может изменить разрешения приложения Wear в Настройках в любое время. Когда пользователь пытается сделать что-то, требующее разрешения, сначала вызовите метод checkSelfPermission() чтобы проверить, есть ли у приложения разрешение на выполнение операции.

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

Пользователь может изменить разрешения через приложение «Настройки».
Рисунок 9. Пользователь может изменить разрешения с помощью приложения «Настройки».
{% дословно %} {% endverbatim %} {% дословно %} {% endverbatim %}