# 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.