Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
На этой странице обсуждается следующее:
Как запросить фоновый доступ к местоположению.
Как обработать запрос в зависимости от целевой версии SDK вашего приложения.
Как предпочтения пользователя относительно приблизительного местоположения влияют на то, как ваше приложение получает данные о фоновом местоположении.
Рисунок 7. На странице настроек есть опция « Разрешить всегда» , которая предоставляет доступ к данным о местоположении в фоновом режиме.
Содержимое диалогового окна разрешений зависит от целевой версии SDK.
Когда функция вашего приложения запрашивает данные о местоположении в фоновом режиме на устройстве под управлением Android 10 (уровень API 29), в диалоговом окне системных разрешений появляется параметр « Разрешить всегда» . Если пользователь выбирает этот параметр, функция вашего приложения получает доступ к данным о местоположении в фоновом режиме.
Однако в Android 11 (уровень API 30) и выше системный диалог не включает опцию « Разрешить постоянно» . Вместо этого пользователи должны включить функцию определения местоположения в фоновом режиме на странице настроек, как показано на рисунке 7.
Вы можете помочь пользователям перейти на эту страницу настроек, следуя рекомендациям при запросе разрешения на определение местоположения в фоновом режиме. Процесс предоставления разрешения зависит от целевой версии SDK вашего приложения.
Приложение предназначено для Android 11 и выше.
Если вашему приложению не предоставлено разрешение ACCESS_BACKGROUND_LOCATION и shouldShowRequestPermissionRationale() возвращает true , покажите пользователям образовательный пользовательский интерфейс, включающий следующее:
Четкое объяснение того, почему функция вашего приложения нуждается в доступе к фоновому местоположению.
Видимая пользователем метка параметра настроек, разрешающего фоновое расположение (например, «Разрешить всегда» на рисунке 7). Вы можете получить эту метку с помощью метода getBackgroundPermissionOptionLabel() . Возвращаемое значение этого метода локализуется в соответствии с языковыми настройками устройства пользователя.
Возможность для пользователей отказаться от разрешения. Если пользователи откажутся от доступа к данным о местоположении в фоновом режиме, они смогут продолжить использовать ваше приложение.
Рисунок 8. Уведомление, напоминающее пользователю о том, что он предоставил приложению доступ к данным о местоположении в фоновом режиме.
Приложение предназначено для Android 10 или ниже.
Когда функция вашего приложения запрашивает доступ к данным о местоположении в фоновом режиме, пользователи видят системное диалоговое окно. Это диалоговое окно включает в себя возможность перейти к параметрам разрешения доступа к данным о местоположении на странице настроек.
Если ваше приложение уже следует лучшим практикам запроса разрешений на определение местоположения, вам не нужно вносить какие-либо изменения для поддержки этого поведения.
Пользователь может влиять на точность определения местоположения в фоновом режиме
Если пользователь запрашивает приблизительное местоположение , выбранные им в диалоговом окне разрешений на доступ к данным о местоположении применяются и к фоновому местоположению. Другими словами, если пользователь предоставляет вашему приложению разрешение ACCESS_BACKGROUND_LOCATION , но в фоновом режиме предоставляет только доступ к приблизительному местоположению, ваше приложение также будет иметь доступ только к приблизительному местоположению в фоновом режиме.
Дополнительные ресурсы
Дополнительную информацию о разрешениях на определение местоположения в Android можно найти в следующих материалах:
Пример приложения , демонстрирующего использование разрешений на определение местоположения.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-27 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-08-27 UTC."],[],[],null,["This page discusses the following:\n\n- How to request background location access.\n- How to handle the request based on your app's target SDK version.\n- How user preferences for approximate location affect how your app gets background location.\n\n**Note:** If a feature in your app accesses location from the background, verify that access is necessary. Consider getting the information that the feature needs in other ways. To learn more about background location access, see the [Access location in the background](/training/location/background) page. \n**Figure 7.** Settings page includes an option called **Allow all the time**, which grants background location access.\n\nPermission dialog contents depend on target SDK version\n\nWhen a feature in your app requests background location on a device that runs\nAndroid 10 (API level 29), the system permissions dialog includes an option\nnamed **Allow all the time**. If the user selects this option, the feature in\nyour app gains background location access.\n\nOn Android 11 (API level 30) and higher, however, the system dialog doesn't\ninclude the **Allow all the time** option. Instead, users must enable background\nlocation on a settings page, as shown in figure 7.\n\nYou can help users navigate to this settings page by following best practices\nwhen requesting the background location permission. The process for granting the\npermission depends on your app's target SDK version.\n\nApp targets Android 11 or higher\n\nIf your app hasn't been granted the `ACCESS_BACKGROUND_LOCATION` permission, and\n[`shouldShowRequestPermissionRationale()`](/reference/androidx/core/app/ActivityCompat#shouldShowRequestPermissionRationale(android.app.Activity,%20java.lang.String)) returns `true`, show an\neducational UI to users that includes the following:\n\n- A clear explanation of why your app's feature needs access to background location.\n- The user-visible label of the settings option that grants background location (for example, **Allow all the time** in figure 7). You can call [`getBackgroundPermissionOptionLabel()`](/reference/android/content/pm/PackageManager#getBackgroundPermissionOptionLabel()) to get this label. The return value of this method is localized to the user's device language preference.\n- An option for users to decline the permission. If users decline background location access, they should be able to continue using your app.\n\n**Figure 8.**Notification reminding the user that they've granted background location access to an app.\n\nApp targets Android 10 or lower\n\nWhen a feature in your app requests background location access, users see a\nsystem dialog. This dialog includes an option to navigate to your app's location\npermission options on a settings page.\n\nAs long as your app already follows best practices for requesting location\npermissions, you don't need to make any changes to support this behavior.\n\nUser can affect background location accuracy\n\nIf the [user requests approximate location](/develop/sensors-and-location/location/permissions/runtime#approximate-request), the user's choices in the\nlocation permissions dialog also apply to background location. In other words,\nif the user grants your app the `ACCESS_BACKGROUND_LOCATION` permission but\ngrants only approximate location access in the foreground, your app has only\napproximate location access in the background as well.\n\nAdditional resources\n\nFor more information about location permissions in Android, view the following\nmaterials:\n\nCodelabs\n\n- [Privacy best practices](/codelabs/android-privacy-codelab)\n\nVideos\n\n- [How to find possible background location usage](https://www.youtube.com/watch?v=xTVeFJZQ28c)\n\nSamples\n\n- [Sample app](https://github.com/android/platform-samples/tree/main/samples/location/src/main/java/com/example/platform/location/permission) to demonstrate the use of location permissions."]]