ключевые слова: одежда, разрешения, collection_guideslandingwear путь к изображению: images/training/wear/multiple_permissions.png
Запрос разрешений на Wear OS аналогичен запросу разрешений в мобильных приложениях, но есть несколько дополнительных вариантов использования. В этом документе предполагается, что вы понимаете, как работают разрешения в Android. Если нет, ознакомьтесь с принципами работы разрешений в Android .
Как и в мобильном приложении, пользователь должен предоставить приложению Wear разрешение на доступ к определённым функциям. В своих приложениях Wear предоставляйте значимые функции, не запрашивая никаких разрешений.
Сценарии разрешений
Существует несколько сценариев, с которыми вы можете столкнуться при запросе опасных разрешений в Wear OS:
Приложение Wear запрашивает разрешения для приложения, работающего на носимом устройстве.
Приложение Wear запрашивает разрешения для приложения, работающего на телефоне.
Приложение телефона запрашивает разрешения для приложения, работающего на носимом устройстве.
Приложение для телефона запрашивает несколько разрешений, которые можно использовать только при подключенном носимом устройстве.
Чтобы увидеть все эти сценарии в работающем приложении, просмотрите пример ExerciseSampleCompose на GitHub.
В следующих разделах описывается каждый из этих сценариев. Более подробную информацию о запросе разрешений см. в разделе «Шаблоны запросов разрешений» .
Приложение Wear запрашивает разрешение на использование носимых устройств
Когда приложение Wear запрашивает разрешение для приложения, работающего на носимом устройстве, система отображает диалоговое окно с запросом разрешения. В вашем приложении запрашивайте разрешения только тогда, когда пользователю ясно, зачем они нужны для выполнения той или иной операции.
Ознакомьтесь с принципами предоставления разрешений , чтобы убедиться, что вы обеспечиваете наилучший опыт для своих пользователей, и не забудьте проверить shouldShowRequestPermissionRationale()
и предоставить дополнительную информацию по мере необходимости.
Если приложению или циферблату требуется более одного разрешения одновременно, запросы на разрешения появляются один за другим.

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

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

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

Партнерские приложения на Android 12 (уровень API 31) и выше могут использовать профили сопутствующих устройств при подключении к часам. Использование профиля упрощает процесс регистрации, объединяя предоставление набора разрешений, специфичных для типа устройства, в один шаг.
Пакетные разрешения предоставляются сопутствующему приложению после подключения устройства и действуют только пока устройство ассоциировано. Удаление приложения или отмена ассоциации приводит к удалению разрешений. Подробнее см. в разделе AssociationRequest.Builder.setDeviceProfile()
.
Шаблоны запросов на разрешения
Существуют различные шаблоны запроса разрешений у пользователей. Вот они (в порядке приоритета):
Задавайте вопрос в контексте, когда разрешение явно необходимо для определенной функциональности, но не является обязательным для запуска приложения в целом.
Объясните в контексте, когда причина запроса разрешения не очевидна и разрешение не является необходимым для запуска приложения в целом.
Эти закономерности объясняются в следующих разделах.
Задавайте вопросы в контексте
Запрашивайте разрешения, когда пользователю понятно, зачем оно нужно для выполнения той или иной операции. Пользователи с большей вероятностью предоставят разрешение, если понимают его связь с функцией, которую хотят использовать.
Например, приложению может потребоваться местоположение пользователя для отображения близлежащих достопримечательностей. Когда пользователь нажимает на экран, чтобы найти близлежащие места, приложение может немедленно запросить разрешение на определение местоположения, поскольку существует очевидная связь между поиском близлежащих мест и необходимостью разрешения на определение местоположения. Очевидность этой связи исключает необходимость отображения дополнительных обучающих экранов.

Обучать в контексте
На рисунке 6 показан пример контекстного обучения. Приложению не требуются разрешения для запуска таймера, но встроенная обучающая подсказка показывает, что часть действия — определение местоположения — заблокирована. При нажатии на подсказку появляется экран запроса разрешения, позволяющий пользователю разблокировать определение местоположения.
Используйте метод shouldShowRequestPermissionRationale()
, чтобы помочь вашему приложению решить, предоставлять ли дополнительную информацию. Подробнее см. в разделе «Запрос разрешений приложения» . Кроме того, вы можете изучить, как отображает информацию пример приложения-спикера на GitHub.

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

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

Узнайте больше о том, как действовать в случае отказа в выдаче разрешения .
Разрешения для служб
Метод requestPermissions()
может быть вызван только действием, поэтому, если пользователь взаимодействует с вашим приложением через сервис, например, через циферблат, сервис должен открыть действие, прежде чем запросить разрешение. В этом действии объясните, почему требуется это разрешение.
В общем случае не запрашивайте разрешения на доступ к циферблату. Вместо этого реализуйте расширение и позвольте пользователю выбирать, какие данные отображать с помощью этого расширения.
Настройки
Пользователь может изменить разрешения приложения Wear OS в любое время в настройках. Когда пользователь пытается выполнить действие, требующее разрешения, сначала вызовите метод checkSelfPermission()
чтобы проверить, есть ли у приложения разрешение на выполнение этой операции.
Выполняйте эту проверку, даже если пользователь ранее предоставил разрешение, поскольку впоследствии он мог его отозвать.

Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Запросить разрешения на выполнение
- Разрешения Bluetooth
- Общение в фоновом режиме
ключевые слова: одежда, разрешения, collection_guideslandingwear путь к изображению: images/training/wear/multiple_permissions.png
Запрос разрешений на Wear OS аналогичен запросу разрешений в мобильных приложениях, но есть несколько дополнительных вариантов использования. В этом документе предполагается, что вы понимаете, как работают разрешения в Android. Если нет, ознакомьтесь с принципами работы разрешений в Android .
Как и в мобильном приложении, пользователь должен предоставить приложению Wear разрешение на доступ к определённым функциям. В своих приложениях Wear предоставляйте значимые функции, не запрашивая никаких разрешений.
Сценарии разрешений
Существует несколько сценариев, с которыми вы можете столкнуться при запросе опасных разрешений в Wear OS:
Приложение Wear запрашивает разрешения для приложения, работающего на носимом устройстве.
Приложение Wear запрашивает разрешения для приложения, работающего на телефоне.
Приложение телефона запрашивает разрешения для приложения, работающего на носимом устройстве.
Приложение для телефона запрашивает несколько разрешений, которые можно использовать только при подключенном носимом устройстве.
Чтобы увидеть все эти сценарии в работающем приложении, просмотрите пример ExerciseSampleCompose на GitHub.
В следующих разделах описывается каждый из этих сценариев. Более подробную информацию о запросе разрешений см. в разделе «Шаблоны запросов разрешений» .
Приложение Wear запрашивает разрешение на использование носимых устройств
Когда приложение Wear запрашивает разрешение для приложения, работающего на носимом устройстве, система отображает диалоговое окно с запросом разрешения. В вашем приложении запрашивайте разрешения только тогда, когда пользователю ясно, зачем они нужны для выполнения той или иной операции.
Ознакомьтесь с принципами предоставления разрешений , чтобы убедиться, что вы обеспечиваете наилучший опыт для своих пользователей, и не забудьте проверить shouldShowRequestPermissionRationale()
и предоставить дополнительную информацию по мере необходимости.
Если приложению или циферблату требуется более одного разрешения одновременно, запросы на разрешения появляются один за другим.

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

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

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

Партнерские приложения на Android 12 (уровень API 31) и выше могут использовать профили сопутствующих устройств при подключении к часам. Использование профиля упрощает процесс регистрации, объединяя предоставление набора разрешений, специфичных для типа устройства, в один шаг.
Пакетные разрешения предоставляются сопутствующему приложению после подключения устройства и действуют только пока устройство ассоциировано. Удаление приложения или отмена ассоциации приводит к удалению разрешений. Подробнее см. в разделе AssociationRequest.Builder.setDeviceProfile()
.
Шаблоны запросов на разрешения
Существуют различные шаблоны запроса разрешений у пользователей. Вот они (в порядке приоритета):
Задавайте вопрос в контексте, когда разрешение явно необходимо для определенной функциональности, но не является обязательным для запуска приложения в целом.
Объясните в контексте, когда причина запроса разрешения не очевидна и разрешение не является необходимым для запуска приложения в целом.
Эти закономерности объясняются в следующих разделах.
Задавайте вопросы в контексте
Запрашивайте разрешения, когда пользователю понятно, зачем оно нужно для выполнения той или иной операции. Пользователи с большей вероятностью предоставят разрешение, если понимают его связь с функцией, которую хотят использовать.
Например, приложению может потребоваться местоположение пользователя для отображения близлежащих достопримечательностей. Когда пользователь нажимает на экран, чтобы найти близлежащие места, приложение может немедленно запросить разрешение на определение местоположения, поскольку существует очевидная связь между поиском близлежащих мест и необходимостью разрешения на определение местоположения. Очевидность этой связи исключает необходимость отображения дополнительных обучающих экранов.

Обучать в контексте
На рисунке 6 показан пример контекстного обучения. Приложению не требуются разрешения для запуска таймера, но встроенная обучающая подсказка показывает, что часть действия — определение местоположения — заблокирована. При нажатии на подсказку появляется экран запроса разрешения, позволяющий пользователю разблокировать определение местоположения.
Используйте метод shouldShowRequestPermissionRationale()
, чтобы помочь вашему приложению решить, предоставлять ли дополнительную информацию. Подробнее см. в разделе «Запрос разрешений приложения» . Кроме того, вы можете изучить, как отображает информацию пример приложения-спикера на GitHub.

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

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

Узнайте больше о том, как действовать в случае отказа в выдаче разрешения .
Разрешения для служб
Метод requestPermissions()
может быть вызван только действием, поэтому, если пользователь взаимодействует с вашим приложением через сервис, например, через циферблат, сервис должен открыть действие, прежде чем запросить разрешение. В этом действии объясните, почему требуется это разрешение.
В общем случае не запрашивайте разрешения на доступ к циферблату. Вместо этого реализуйте расширение и позвольте пользователю выбирать, какие данные отображать с помощью этого расширения.
Настройки
Пользователь может изменить разрешения приложения Wear OS в любое время в настройках. Когда пользователь пытается выполнить действие, требующее разрешения, сначала вызовите метод checkSelfPermission()
чтобы проверить, есть ли у приложения разрешение на выполнение этой операции.
Выполняйте эту проверку, даже если пользователь ранее предоставил разрешение, поскольку впоследствии он мог его отозвать.

Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Запросить разрешения на выполнение
- Разрешения Bluetooth
- Общение в фоновом режиме