# Permissions
# Required permissions
# Android
The following permissions are merged into your manifest by the PinchSDK:
Permission | Reason | Type |
---|---|---|
INTERNET | Required to access the internet | Install-time |
BLUETOOTH | Required to access the bluetooth adapter | Install-time |
BLUETOOTH_ADMIN | Required to initiate bluetooth discovery | Install-time |
ACCESS_FINE_LOCATION | Required to perform a bluetooth scan | Runtime |
ACCESS_BACKGROUND_LOCATION | Required on Android 10+ to perform scanning in background | Runtime |
ACTIVITY_RECOGNITION | Required to detect when the user transitions between activities (eg. walking to running) | Runtime |
RECEIVE_BOOT_COMPLETED | Required to restart the SDK automatically when device is rebooted | Install-time |
FOREGROUND_SERVICE | Required for special use cases, where a foreground notification will be used to keep the app alive for a short period | Install-time |
Note
Although most of the permissions are granted automatically by the system upon installation, a few of them must be explicitly requested from the user on runtime. Please consult with us to prepare a proper onboarding process to receive as many permission grants as possible.
# iOS
The following permissions need to be added to your Info.plist
:
Permission | Reason |
---|---|
NSLocationWhenInUseUsageDescription | Describes how your app will use location services in the foreground. You must include this key if you wish to collect location events |
NSLocationAlwaysAndWhenInUseUsageDescription | Describes how your app will use location services and explains what extra features you can provide if the always option is selected. The presented alert gives the user the option between "Only when in use", "Always", and "Never". Only used on iOS 11 or later |
NSLocationAlwaysUsageDescription | Describes how your app will use location services, both in the foreground and background. The presented alert gives the user the option between "Always", and "Never". If your deployment target is at iOS 11 or higher, then you don't need this key even if you wish to collect location events |
NSBluetoothAlwaysUsageDescription | Describes how your app will use bluetooth, both in the foreground and background. |
NSBluetoothPeripheralUsageDescription | Describes how your app will use bluetooth, both in the foreground and background for OS versions prior to iOS 13 |
Note
If your application is targeting iOS 11 or higher, then only WhenInUseUsage
and AlwaysAndWhenInUseUsage
plist keys are required. If your application is targeting iOS 10 or below, then you need to include all four of these keys.
← Add PinchSDK Usage →