{
	"id": "77ead6ec-6511-4729-9243-f579ee77442a",
	"created_at": "2026-04-06T00:18:41.487732Z",
	"updated_at": "2026-04-10T03:20:58.052992Z",
	"deleted_at": null,
	"sha1_hash": "e04b82a7f7b4787328eb9f66ce35dcc14284d0ab",
	"title": "Request location permissions",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 61886,
	"plain_text": "Request location permissions\r\nArchived: 2026-04-05 21:31:31 UTC\r\nTo protect user privacy, apps that use location services must request location permissions.\r\nMultiple permissions are related to location. Which permissions you request, and how you request them, depend\r\non the location requirements for your app's use case.\r\nThis page describes the different types of location requirements and explains how to request location permissions\r\nin each case.\r\nTo request location permissions, follow the best practices for all runtime permissions.\r\nTypes of location access\r\nEach permission has a combination of the following characteristics:\r\nCategory: Either foreground location or background location.\r\nAccuracy: Either precise location or approximate location.\r\nForeground location\r\nIf your app contains a feature that shares or receives location information only once, or for a defined amount of\r\ntime, then that feature requires foreground location access. Some examples include the following:\r\nWithin a navigation app, a feature allows users to get turn-by-turn directions.\r\nWithin a messaging app, a feature allows users to share their current location with another user.\r\nThe system considers your app to be using foreground location if a feature of your app accesses the device's\r\ncurrent location in one of the following situations:\r\nAn activity that belongs to your app is visible.\r\nYour app is running a foreground service. When a foreground service is running, the system raises user\r\nawareness by showing a persistent notification. Your app retains access when it's placed in the background,\r\nsuch as when the user presses the Home button on their device or turns their device's display off.\r\nAdditionally, you should declare a foreground service type of location , as shown in the following code\r\nsnippet. On Android 10 (API level 29) and higher, you must declare this foreground service type.\r\n\u003c!-- Recommended for Android 9 (API level 28) and lower. --\u003e\r\n\u003c!-- Required for Android 10 (API level 29) and higher. --\u003e\r\n\u003cservice\r\n android:name=\"MyNavigationService\"\r\nhttps://developer.android.com/training/location/permissions\r\nPage 1 of 4\n\nandroid:foregroundServiceType=\"location\" ... \u003e You declare a need for foreground location when your app requests either the ACCESS_COARSE_LOCATION\npermission or the ACCESS_FINE_LOCATION permission, as shown in the following snippet:\nBackground location\nAn app requires background location access if a feature within the app constantly shares location with other users\nor uses the Geofencing API. Several examples include the following:\nWithin a family location sharing app, a feature allows users to continuously share location with family\nmembers.\nWithin an IoT app, a feature allows users to configure their home devices such that they turn off when the\nuser leaves their home and turn back on when the user returns home.\nThe system considers your app to be using background location if it accesses the device's current location in any\nsituation other than the ones described in the foreground location section. The background location precision is the\nsame as the foreground location precision, which depends on the location permissions that your app declares.\nOn Android 10 (API level 29) and higher, you must declare the ACCESS_BACKGROUND_LOCATION permission in your\napp's manifest in order to request background location access at runtime. On earlier versions of Android, when\nyour app receives foreground location access, it automatically receives background location access as well.\nAccuracy\nAndroid supports the following levels of location accuracy:\nhttps://developer.android.com/training/location/permissions\nPage 2 of 4\n\nApproximate\r\nProvides a device location estimate. If this location estimate is from the LocationManagerService or\r\nFusedLocationProvider , this estimate is accurate to within about 3 square kilometers (about 1.2 square\r\nmiles). Your app can receive locations at this level of accuracy when you declare the\r\nACCESS_COARSE_LOCATION permission but not the ACCESS_FINE_LOCATION permission.\r\nPrecise\r\nProvides a device location estimate that is as accurate as possible. If the location estimate is from\r\nLocationManagerService or FusedLocationProvider , this estimate is usually within about 50 meters\r\n(160 feet) and is sometimes as accurate as within a few meters (10 feet) or better. Your app can receive\r\nlocations at this level of accuracy when you declare the ACCESS_FINE_LOCATION permission.\r\nIf the user grants the approximate location permission, your app only has access to approximate location,\r\nregardless of which location permissions your app declares.\r\nYour app should still work when the user grants only approximate location access. If a feature in your app\r\nabsolutely requires access to precise location using the ACCESS_FINE_LOCATION permission, you can ask the user\r\nto allow your app to access precise location.\r\nReminder of background location grant\r\nOn Android 10 (API level 29) and higher, when a feature in your app accesses device location in the background\r\nfor the first time after the user grants background location access, the system schedules a notification to send to\r\nthe user. This notification reminds the user that they've allowed your app to access device location all the time. An\r\nexample notification appears in figure 8.\r\nCheck for location requirements in your app's SDK dependencies\r\nCheck whether your app uses any SDKs that depend on location permissions, especially the\r\nACCESS_FINE_LOCATION permission. Read the Getting to know the behaviors of your SDK dependencies blog post\r\non Medium for more.\r\nAdditional resources\r\nFor more information about location permissions in Android, view the following materials:\r\nCodelabs\r\nPrivacy best practices\r\nVideos\r\nHow to find possible background location usage\r\nSamples\r\nSample app to demonstrate the use of location permissions.\r\nhttps://developer.android.com/training/location/permissions\r\nPage 3 of 4\n\nSource: https://developer.android.com/training/location/permissions\r\nhttps://developer.android.com/training/location/permissions\r\nPage 4 of 4",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"references": [
		"https://developer.android.com/training/location/permissions"
	],
	"report_names": [
		"permissions"
	],
	"threat_actors": [],
	"ts_created_at": 1775434721,
	"ts_updated_at": 1775791258,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/e04b82a7f7b4787328eb9f66ce35dcc14284d0ab.pdf",
		"text": "https://archive.orkl.eu/e04b82a7f7b4787328eb9f66ce35dcc14284d0ab.txt",
		"img": "https://archive.orkl.eu/e04b82a7f7b4787328eb9f66ce35dcc14284d0ab.jpg"
	}
}