위치, 마이크, 카메라와 관련된 권한은 앱에게 사용자에 관한 특히 민감한 정보에 액세스할 수 있는 권한을 부여합니다. 플랫폼에는 이 페이지에 설명된 몇 가지 메커니즘이 포함되어 있어 사용자가 최신 정보를 확인하고 어떤 앱이 위치, 마이크, 카메라에 액세스할 수 있는지 제어할 수 있게 해줍니다.
이러한 개인 정보 보호 시스템 기능은 개인 정보 보호 권장사항을 준수하는 한 앱에서 위치, 마이크 및 카메라와 관련된 권한을 처리하는 방식에 영향을 미치지 않습니다.
특히 앱에서 메커니즘을 따르도록 해야 합니다.
사용자가 앱에 CAMERA 권한을 부여할 때까지 기기의 카메라에 액세스하는 것을 기다립니다.
사용자가 앱에 RECORD_AUDIO 권한을 부여할 때까지 기기의 마이크에 액세스하는 것을 기다립니다.
사용자가 ACCESS_COARSE_LOCATION 권한 또는 ACCESS_FINE_LOCATION 권한을 앱에 부여할 때까지 기다렸다가 ACCESS_BACKGROUND_LOCATION 권한을 요청합니다.
개인 정보 대시보드
그림 1. 개인 정보 대시보드의 일부인 위치 사용 화면
Android 12 이상을 실행하는 지원되는 기기에서는 개인 정보 대시보드 화면이 시스템 설정에 표시됩니다. 이 화면에서 사용자는 앱이 위치나 카메라, 마이크 정보에 액세스할 때 표시되는 별도의 화면에 액세스할 수 있습니다. 각 화면에는 여러 앱이 특정 유형의 데이터에 액세스한 시점의 타임라인이 표시됩니다. 그림 1은 위치 정보 데이터 액세스 타임라인을 보여줍니다.
데이터 액세스 근거 표시
앱은 사용자에게 앱이 위치나 카메라, 마이크 정보에 액세스하는 이유를 알 수 있도록 근거를 제공할 수 있습니다. 이 근거는 새 개인 정보 대시보드 화면이나 앱의 권한 화면 또는 둘 다에 표시될 수 있습니다.
데이터 액세스 근거 활동에서 표시할 내용을 결정합니다. 예를 들어 앱의 웹사이트나 고객센터 도움말을 표시할 수 있습니다. 앱이 액세스하는 데이터 유형과 액세스 발생 시점에 관해 좀 더 자세히 설명하려면 시스템에서 권한 사용 인텐트를 호출할 때 포함되는 추가 항목을 처리하세요.
추가하는 인텐트 필터에 따라 사용자에게 특정 화면의 앱 이름 옆에 정보 아이콘이 표시됩니다.
VIEW_PERMISSION_USAGE 작업이 포함된 인텐트 필터를 추가하면 시스템 설정의 앱 권한 페이지에 아이콘이 표시됩니다. 이 작업은 모든 런타임 권한에 적용할 수 있습니다.
VIEW_PERMISSION_USAGE_FOR_PERIOD 작업이 포함된 인텐트 필터를 추가하면 앱이 개인 정보 대시보드 화면에 표시될 때마다 앱 이름 옆에 아이콘이 표시됩니다.
사용자가 이 아이콘을 선택하면 앱의 근거 활동이 시작됩니다.
그림 2. 최근 데이터 액세스를 보여주는 마이크 및 카메라 표시기
표시기
Android 12 이상을 실행하는 기기에서는 앱이 마이크나 카메라에 액세스할 때 상태 표시줄에 아이콘이 표시됩니다. 앱이 몰입형 모드이면 아이콘은 화면 오른쪽 상단에 표시됩니다. 사용자는 빠른 설정을 열고 아이콘을 선택하여 현재 마이크나 카메라를 사용하는 앱을 확인할 수 있습니다.
그림 2는 아이콘이 포함된 스크린샷을 보여주는 예입니다.
표시기의 화면 위치 식별
앱이 몰입형 모드 또는 전체 화면 UI를 지원하는 경우 표시기가 앱의 UI와 잠시 동안 겹칠 수 있습니다. 이러한 표시기에 맞게 UI를 조정하기 위해 시스템은 다음 코드 스니펫에서 보여주는 getPrivacyIndicatorBounds() 메서드를 도입합니다. 이 API를 사용하면 표시기가 표시될 수 있는 경계를 식별할 수 있습니다. 개발자는 화면 UI를 다르게 구성할 수 있습니다.
Kotlin
view.setOnApplyWindowInsetsListener{view,windowInsets->
valindicatorBounds=windowInsets.getPrivacyIndicatorBounds()// change your UI to avoid overlappingwindowInsets}
전환
그림 3. 빠른 설정에서 마이크 및 카메라 전환
Android 12 이상을 실행하는 지원 기기에서 사용자는 단일 전환 옵션을 눌러 기기의 모든 앱에 카메라 및 마이크 액세스를 사용 설정하거나 사용 중지할 수 있습니다. 사용자는 그림3과 같이 빠른 설정에서 또는 시스템 설정의 개인 정보 보호 화면에서 전환 가능한 옵션에 액세스할 수 있습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-08-27(UTC)
[null,null,["최종 업데이트: 2025-08-27(UTC)"],[],[],null,["The permissions related to location, microphone, and camera grant your app\naccess to particularly sensitive information about users. The platform includes\nseveral mechanisms, described on this page, to help users stay informed and in\ncontrol over which apps can access location, microphone, and camera.\n\nThese privacy-preserving system features shouldn't affect how your app handles\nthe permissions related to location, microphone, and camera, as long as you\n[follow privacy best practices](/privacy/best-practices).\n\nIn particular, make sure you do the following in your app:\n\n- Wait to access the device's camera until the user has granted the [`CAMERA`](/reference/android/Manifest.permission#CAMERA) permission to your app.\n- Wait to access the device's microphone until the user has granted the [`RECORD_AUDIO`](/reference/android/Manifest.permission#RECORD_AUDIO) permission to your app.\n- Wait until the user interacts with a feature in your app that requires location before you request the [`ACCESS_COARSE_LOCATION`](/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION) permission or the [`ACCESS_FINE_LOCATION`](/reference/android/Manifest.permission#ACCESS_FINE_LOCATION) permission, as described in the guide on how to [request location\n permissions](/training/location/permissions#request-location-access-runtime).\n- Wait until the user grants your app either the `ACCESS_COARSE_LOCATION` permission or the `ACCESS_FINE_LOCATION` permission before you request the [`ACCESS_BACKGROUND_LOCATION`](/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION) permission.\n\nPrivacy Dashboard \n**Figure 1.** Location usage screen, part of the Privacy Dashboard.\n\nOn supported devices that run Android 12 or higher, a Privacy\nDashboard screen appears in system settings. On this screen, users can access\nseparate screens that show when apps access location, camera, and microphone\ninformation. Each screen shows a timeline of when different apps have accessed a\nparticular type of data. Figure 1 shows the data access timeline for location\ninformation.\n\nShow rationale for data access\n\nYour app can provide a rationale for users to help them understand why your app\naccesses location, camera, or microphone information. This rationale can appear\non the new Privacy Dashboard screen, your app's permissions screen, or both.\n\nTo explain why your app accesses location, camera, and microphone information,\ncomplete the following steps:\n\n1. Add an activity that, when started, provides some rationale for why your app\n performs a particular type of data access action. Within this activity, set the\n [`android:permission`](/guide/topics/manifest/activity-element#prmsn) attribute\n to [`START_VIEW_PERMISSION_USAGE`](/reference/android/Manifest.permission#START_VIEW_PERMISSION_USAGE).\n\n If your app targets Android 12 or higher, you must explicitly\n [define a value for the `android:exported`\n attribute](/about/versions/12/behavior-changes-12#exported).\n2. Add the following intent filter to the newly-added activity:\n\n ```xml\n \u003c!-- android:exported required if you target Android 12. --\u003e\n \u003cactivity android:name=\".DataAccessRationaleActivity\"\n android:permission=\"android.permission.START_VIEW_PERMISSION_USAGE\"\n android:exported=\"true\"\u003e\n \u003c!-- VIEW_PERMISSION_USAGE shows a selectable information icon on\n your app permission's page in system settings.\n VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information\n icon on the Privacy Dashboard screen. --\u003e\n \u003cintent-filter\u003e\n \u003caction android:name=\"android.intent.action.VIEW_PERMISSION_USAGE\" /\u003e\n \u003caction android:name=\"android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD\" /\u003e\n \u003ccategory android:name=\"android.intent.category.DEFAULT\" /\u003e\n ...\n \u003c/intent-filter\u003e\n \u003c/activity\u003e\n ```\n3. Decide what your data access rationale activity should show. For example, you\n might show your app's website or a help center article. To provide a more\n detailed explanation about the types of data that your app accesses, as well as\n when the access occurred, handle the extras that the system includes when it\n invokes the permission usage intent:\n\n - If the system invokes `ACTION_VIEW_PERMISSION_USAGE`, your app can retrieve a value for [`EXTRA_PERMISSION_GROUP_NAME`](/reference/android/content/Intent#EXTRA_PERMISSION_GROUP_NAME).\n - If the system invokes `ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD`, your app can retrieve values for `EXTRA_PERMISSION_GROUP_NAME`, [`EXTRA_ATTRIBUTION_TAGS`](/reference/android/content/Intent#EXTRA_ATTRIBUTION_TAGS), [`EXTRA_START_TIME`](/reference/android/content/Intent#EXTRA_START_TIME), and [`EXTRA_END_TIME`](/reference/android/content/Intent#EXTRA_END_TIME).\n\nDepending on which intent filters you add, users see an information icon\nnext to your app's name on certain screens:\n\n- If you add the intent filter that contains the `VIEW_PERMISSION_USAGE` action, users see the icon on your app's permissions page in system settings. You can apply this action to all runtime permissions.\n- If you add the intent filter that contains the `VIEW_PERMISSION_USAGE_FOR_PERIOD` action, users see the icon next to your app's name whenever your app appears in the Privacy Dashboard screen.\n\nWhen users select that icon, your app's rationale activity is started. \n**Figure 2.** Microphone and camera indicators, which show recent data access.\n\nIndicators **Note:** The icon mentioned in this section shouldn't require changes to your app's logic, as long as you [follow privacy best\n| practices](/privacy/best-practices).\n\nOn devices that run Android 12 or higher, when an app accesses\nthe microphone or camera, an icon appears in the status bar. If the app is in\n[immersive mode](/training/system-ui/immersive#immersive), the icon appears in\nthe upper-right corner of the screen. Users can open Quick Settings and select\nthe icon to view which apps are currently using the microphone or camera.\nFigure 2 shows an example screenshot that contains the icons.\n\nIdentify the screen location of indicators\n\nIf your app supports immersive mode or a full-screen UI, the indicators might\nmomentarily overlap your app's UI. To help adapt your UI to these indicators,\nthe system introduces the\n[`getPrivacyIndicatorBounds()`](/reference/android/view/WindowInsets.Builder#setPrivacyIndicatorBounds(android.graphics.Rect))\nmethod, which the following code snippet demonstrates. Using this API, you can\nidentify the bounds where the indicators might appear. You might then decide to\norganize your screen's UI differently. \n\nKotlin \n\n```kotlin\nview.setOnApplyWindowInsetsListener { view, windowInsets -\u003e\n val indicatorBounds = windowInsets.getPrivacyIndicatorBounds()\n // change your UI to avoid overlapping\n windowInsets\n}\n```\n\nToggles **Note:** The toggles mentioned in this section shouldn't require changes to your app's logic, as long as you [follow privacy best\npractices](/privacy/best-practices). \n**Figure 3.** Microphone and camera toggles in Quick Settings.\n\nOn [supported devices](#toggles-check-device-support) that run\nAndroid 12 or higher, users can enable and disable camera and\nmicrophone access for all apps on the device by pressing a single toggle\noption. Users can access the toggleable options from [Quick\nSettings](https://support.google.com/android/answer/9083864), as shown in\nfigure 3, or from the Privacy screen in system settings.\n\nThe camera and microphone toggles affect all apps on the device:\n\n- When the user turns off camera access, your app receives a blank camera feed.\n- When the user turns off microphone access, your app receives silent audio.\n Additionally, [motion sensors are\n rate-limited](/guide/topics/sensors/sensors_overview#sensors-rate-limiting),\n regardless of whether you declare the\n [`HIGH_SAMPLING_RATE_SENSORS`](/reference/android/Manifest.permission#HIGH_SAMPLING_RATE_SENSORS)\n permission.\n\n | **Note:** When the user places a call to emergency services, such as 911, the system turns on microphone access. This behavior preserves user safety.\n\nWhen the user turns off access to camera or microphone, then\nlaunches an app that needs access to camera or microphone information, the\nsystem reminds the user that the device-wide toggle is turned off.\n\nCheck device support\n\nTo check whether a device supports microphone and camera toggles, add the logic\nthat appears in the following code snippet: \n\nKotlin \n\n```kotlin\nval sensorPrivacyManager = applicationContext\n .getSystemService(SensorPrivacyManager::class.java)\n as SensorPrivacyManager\nval supportsMicrophoneToggle = sensorPrivacyManager\n .supportsSensorToggle(Sensors.MICROPHONE)\nval supportsCameraToggle = sensorPrivacyManager\n .supportsSensorToggle(Sensors.CAMERA)\n```\n\nJava \n\n```java\nSensorPrivacyManager sensorPrivacyManager = getApplicationContext()\n .getSystemService(SensorPrivacyManager.class);\nboolean supportsMicrophoneToggle = sensorPrivacyManager\n .supportsSensorToggle(Sensors.MICROPHONE);\nboolean supportsCameraToggle = sensorPrivacyManager\n .supportsSensorToggle(Sensors.CAMERA);\n```"]]