Getnet DocsGetnet Docs

Configure Android Permissions

The Get Mini Android SDK requires specific Android permissions to communicate with Bluetooth PIN pad devices and connect to the Redsys authorization host. This guide explains which permissions are required and how to declare them in your application manifest.

Required Permissions

The Android SDK requires the following permissions to function correctly:

Bluetooth Permissions

To manage and establish Bluetooth connections with the Get Mini PIN pad:

  • android.permission.BLUETOOTH
  • android.permission.BLUETOOTH_ADMIN

Network Permissions

To send authorization requests to the Redsys payment host:

  • android.permission.INTERNET
  • android.permission.ACCESS_NETWORK_STATE

Declare Permissions in AndroidManifest.xml

Add the following permissions to your AndroidManifest.xml file within the <manifest> tag:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Bluetooth Permissions for Pinpad Communication -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

    <!-- Network Permissions for Authorization Host -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application ...>
        <!-- Your application configuration -->
    </application>
</manifest>

These are the minimum required permissions as specified in the iTPV-PC SDK documentation. Without these permissions, the SDK will not be able to:

  • Discover and connect to Bluetooth PIN pad devices
  • Transmit transaction data to the Redsys authorization host
  • Receive authorization responses

Permission Behavior by Android Version

Android 5.1 and Below (API 22 and below)

All permissions are granted automatically at installation time. No runtime permission requests are required.

Android 6.0 and Above (API 23+)

Dangerous permissions must be requested at runtime. For the iTPV-PC SDK:

  • Bluetooth permissions (BLUETOOTH, BLUETOOTH_ADMIN) are considered normal permissions and are granted automatically.
  • Network permissions (INTERNET, ACCESS_NETWORK_STATE) are also normal permissions and are granted automatically.

As a result, no runtime permission requests are required for the core iTPV-PC SDK functionality on any Android version, as all required permissions are classified as normal permissions by the Android platform.


Additional Considerations for Modern Android Versions

Android 12+ (API 31+)

If your application targets Android 12 or higher, you may encounter new Bluetooth permission requirements introduced by the platform:

  • BLUETOOTH_SCAN - Required for discovering nearby Bluetooth devices
  • BLUETOOTH_CONNECT - Required for connecting to paired Bluetooth devices

While the iTPV-PC SDK documentation (version 2.5.3) does not explicitly require these permissions, Android 12+ devices may enforce them depending on your target SDK version and implementation details.

If you encounter Bluetooth connectivity issues on Android 12+ devices, consider adding these permissions to your manifest:

<!-- Optional: Android 12+ Bluetooth Permissions -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

And request them at runtime before initializing the PIN pad connection:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    val permissions = arrayOf(
        Manifest.permission.BLUETOOTH_SCAN,
        Manifest.permission.BLUETOOTH_CONNECT
    )
    requestPermissions(permissions, BLUETOOTH_PERMISSION_REQUEST_CODE)
}

Location Permission (Android 6.0 - 11)

On Android versions 6.0 through 11, Bluetooth LE scanning may require location permission (ACCESS_FINE_LOCATION) even though the SDK doesn’t use GPS functionality. This is a platform requirement, not an SDK requirement.

If you encounter Bluetooth scanning issues on Android 6.0-11 devices, you may need to add:

<!-- Optional: Required for Bluetooth LE scanning on Android 6-11 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
    android:maxSdkVersion="30" />

And request it at runtime on affected Android versions.


Troubleshooting

Bluetooth Connection Fails

  • Verify all four required permissions are declared in AndroidManifest.xml
  • Ensure Bluetooth is enabled on the Android device
  • Confirm the PIN pad is powered on and in pairing mode
  • Check that the PIN pad serial number matches the configuration

Network Authorization Fails

  • Verify INTERNET permission is declared
  • Check network connectivity on the device
  • Confirm the correct environment is configured (integration, certification, or production)
  • Verify the terminal credentials are valid

Android 12+ Specific Issues

  • Add BLUETOOTH_SCAN and BLUETOOTH_CONNECT permissions
  • Request these permissions at runtime before PIN pad initialization
  • Ensure users grant the “Nearby devices” permission when prompted

Next Steps