# Permissions Setup

The Agent App requires several Android permissions to collect device data and deliver the features included in your package. This section explains **the required permissions, their purpose, and how users should grant them correctly**.

| <div><figure><img src="/files/Gb7c7N3QLQi3tCfepCAh" alt=""><figcaption></figcaption></figure></div> | <div><figure><img src="/files/5X5VuV0u0TAvhWN3kMxc" alt=""><figcaption></figcaption></figure></div> |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |

***

### 1. Location Permissions

**Purpose:** Collect GPS coordinates to support features such as live tracking, location history, and geofencing.

* `ACCESS_FINE_LOCATION`\
  Grants precise GPS location. Required for accurate tracking.
* `ACCESS_COARSE_LOCATION`\
  Grants approximate location based on Wi-Fi and mobile networks.
* `ACCESS_BACKGROUND_LOCATION` *(Android 10+)*\
  Allows the app to collect location data even when it is running in the background.

  > **Note:** Starting with Android 10, background location must be requested separately. The user will see a system dialog asking to grant “Allow all the time” access.

***

### 2. Phone & SMS Permissions

**Purpose:** Collect call logs and SMS records for reporting in the Admin Panel.

* `READ_CALL_LOG`\
  Allows reading of the device’s call history (incoming, outgoing, missed calls).
* `READ_SMS`\
  Allows reading of SMS messages stored on the device.
* `RECEIVE_SMS`\
  Allows the app to detect new SMS messages as they arrive.
* `SEND_SMS` *(optional)*\
  Only required if the app supports sending SMS remotely.

***

### 3. Contacts Permissions

**Purpose:** Retrieve the user’s contact list for synchronization with the Admin Panel.

* `READ_CONTACTS`\
  Grants read access to the contact database.
* `WRITE_CONTACTS` *(optional)*\
  Needed only if the app modifies or adds new contacts.

***

### 4. Storage & Media Permissions

**Purpose:** Collect photos, videos, and files stored on the device.

* `READ_EXTERNAL_STORAGE` *(Android 9 and below)*
* `WRITE_EXTERNAL_STORAGE` *(Android 9 and below)*

> Starting from Android 10, Google introduced Scoped Storage. For Android 13 and above, the following granular permissions are required:

* `READ_MEDIA_IMAGES`
* `READ_MEDIA_VIDEO`
* `READ_MEDIA_AUDIO`

If the app requires unrestricted access to all files, the special `MANAGE_EXTERNAL_STORAGE` Permission may be requested (only if absolutely necessary).

***

### 5. Microphone Permissions

**Purpose:** Support ambient audio recording or live audio streaming.

* `RECORD_AUDIO`\
  Grants access to the microphone.
* `FOREGROUND_SERVICE_MICROPHONE` *(Android 10+)*\
  Required when recording audio from a foreground service.

***

### 6. Camera Permissions

**Purpose:** Capture snapshots, videos, or scan QR codes during pairing.

* `CAMERA`\
  Grants access to the device’s camera hardware.

***

### 7. Device Information & System Permissions

**Purpose:** Collect hardware identifiers, installed applications, and system status.

* `READ_PHONE_STATE`\
  Allows access to device identifiers (e.g., IMEI, SIM status, network info).
* `QUERY_ALL_PACKAGES` *(Android 11+)*\
  Allows the app to see the full list of installed apps. This is required if application monitoring is enabled.
* `PACKAGE_USAGE_STATS`\
  Allows access to usage statistics (e.g., which apps were opened and for how long).
* `BIND_ACCESSIBILITY_SERVICE` *(optional, advanced)*\
  Grants the app Accessibility Service rights if certain automation features are enabled.
* `SYSTEM_ALERT_WINDOW` *(optional)*\
  Allows the app to display overlay windows. Used only for specific features.

***

### 8. Notification Access

**Purpose:** Capture notifications that appear on the device (optional feature).

* `BIND_NOTIFICATION_LISTENER_SERVICE`\
  Allows the app to listen to all system notifications.

***

### 9. How Users Should Grant Permissions

1. **During Installation**
   * The app will request essential runtime permissions (Location, SMS, Contacts, etc.).
   * The user must tap **Allow** to enable each permission.
2. **After Installation**
   * For background permissions (such as Background Location), the user must open **System Settings → Apps → \[Agent App] → Permissions** and manually switch to **“Allow all the time”**.
3. **Special Cases**
   * Notification Access, Accessibility Service, or Device Admin rights (if required) must be granted via a separate system dialog. The user will be guided step-by-step inside the app.

***

### 10. Important Notes

* Without granting the correct permissions, the Agent App will not be able to collect or synchronize data.
* On Android 11 and above, additional privacy restrictions apply. Users must follow the prompts carefully.
* Some device manufacturers (Samsung, Xiaomi, Oppo, etc.) may have additional permission management layers. Users should disable **battery optimization** for the Agent App to ensure continuous data collection.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://phoneparental.gitbook.io/support/guide/agent-app/permissions-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
