{"title":"Android app requirements","category":"default","creationDate":1739867040,"content":"<p>On your Android payment terminal, you can install and use Android apps. These apps must meet certain requirements, because it is critical that the terminals remain secure.<\/p>\n<p>This page provides an overview of:<\/p>\n<ul>\n<li>The requirements your Android apps must meet with regard to specifications, allowed permissions, restrictions, and (if applicable) WebView versions.<\/li>\n<li>How you can test your Android apps.<\/li>\n<\/ul>\n<h2 id=\"app-specifications\">App specifications<\/h2>\n<p>Make sure that your app meets the following specifications with regard to APK file size, operating system and SDK version, app version, and native code.<\/p>\n<ul>\n<li>\n<p><strong>APK file size<\/strong>:<br \/>\nTo distribute the app to your terminals, we need to have the app's Android Package (APK). The maximum file size of the APK is:<\/p>\n<ul>\n<li>200 MB for the live environment.<\/li>\n<li>700 MB for the test environment.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Operating system<\/strong> and <strong>SDK version<\/strong>:<br \/>\nThe app must run on a specific Android version, and the <em>AndroidManifest.xml<\/em> that is included in the APK must have a <a href=\"https:\/\/developer.android.com\/guide\/topics\/manifest\/uses-sdk-element#min\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">\n  <code>minSdkVersion<\/code>\n<\/a> field. This field specifies the minimum API level required for your app to run, and allows us to verify that your app is supported on the payment terminal.<br \/>\nFor example, AMS1 running on Android 10 will support <code>minSdkVersion<\/code> <strong>29<\/strong> or earlier, but not  <code>minSdkVersion<\/code> <strong>30<\/strong> and later.<br \/>\nThe required Android version and minimum SDK version depend on the terminal model and region, as indicated in the following table.<\/p>\n<div class=\"sc-notice note\"><div>\n<p><img src=\"\/user\/themes\/adyen\/images\/illustrations\/warning.svg\"> <strong>Work in progress<\/strong>. Currently not all models are available in all regions.<br \/>\nYou can check terminal availability for your region in your live <a href=\"https:\/\/ca-live.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/p>\n<\/div><\/div>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Terminal<\/th>\n<th style=\"text-align: left;\">Region<\/th>\n<th style=\"text-align: left;\">OS version<\/th>\n<th style=\"text-align: left;\"><code>minSdkVersion<\/code><\/th>\n<th style=\"text-align: left;\"><code>Build.MODEL<\/code><\/th>\n<th style=\"text-align: left;\">CPU architecture<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">AMS1<\/td>\n<td style=\"text-align: left;\">AU\/NZ, BR, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA<\/td>\n<td style=\"text-align: left;\">Android 10<\/td>\n<td style=\"text-align: left;\">SDK 29<\/td>\n<td style=\"text-align: left;\"><code>AMS1<\/code><\/td>\n<td style=\"text-align: left;\">ARMv7<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">S1E2L<\/td>\n<td style=\"text-align: left;\">AU\/NZ, BR, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA<\/td>\n<td style=\"text-align: left;\">Android 10<\/td>\n<td style=\"text-align: left;\">SDK 29<\/td>\n<td style=\"text-align: left;\"><code>S1E2L<\/code> \/ <code>S1E2-L<\/code><\/td>\n<td style=\"text-align: left;\">ARM64<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">S1E4Pro<\/td>\n<td style=\"text-align: left;\">AU\/NZ, EU(except Germany)\/UK, UAE,  US\/CA<\/td>\n<td style=\"text-align: left;\">Android 13<\/td>\n<td style=\"text-align: left;\">SDK 33<\/td>\n<td style=\"text-align: left;\"><code>S1F4 PRO<\/code><\/td>\n<td style=\"text-align: left;\">ARM64<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">S1F2<\/td>\n<td style=\"text-align: left;\">EU\/UK, SG\/HK\/MY, UAE<\/td>\n<td style=\"text-align: left;\">Android 9<\/td>\n<td style=\"text-align: left;\">SDK 28<\/td>\n<td style=\"text-align: left;\"><code>Saturn1000F2<\/code><\/td>\n<td style=\"text-align: left;\">ARMv7<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">S1F2 Barcode<\/td>\n<td style=\"text-align: left;\">EU\/UK, SG\/HK\/MY, UAE<\/td>\n<td style=\"text-align: left;\">Android 9<\/td>\n<td style=\"text-align: left;\">SDK 28<\/td>\n<td style=\"text-align: left;\"><code>Saturn1000F2<\/code><\/td>\n<td style=\"text-align: left;\">ARMv7<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">S1F4Pro<\/td>\n<td style=\"text-align: left;\">AU\/NZ, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA<\/td>\n<td style=\"text-align: left;\">Android 13<\/td>\n<td style=\"text-align: left;\">SDK 33<\/td>\n<td style=\"text-align: left;\"><code>S1F4 PRO<\/code><\/td>\n<td style=\"text-align: left;\">ARM64<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">S1U2<\/td>\n<td style=\"text-align: left;\">AU\/NZ, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA<\/td>\n<td style=\"text-align: left;\">Android 10<\/td>\n<td style=\"text-align: left;\">SDK 29<\/td>\n<td style=\"text-align: left;\"><code>S1U2<\/code><\/td>\n<td style=\"text-align: left;\">ARMv7<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">SFO1<\/td>\n<td style=\"text-align: left;\">EU\/UK, US\/CA<\/td>\n<td style=\"text-align: left;\">Android 13<\/td>\n<td style=\"text-align: left;\">SDK 33<\/td>\n<td style=\"text-align: left;\"><code>SFO1<\/code><\/td>\n<td style=\"text-align: left;\">ARM64<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<p><strong>App version<\/strong> :<br \/>\nThe <a href=\"https:\/\/developer.android.com\/studio\/publish\/versioning\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">\n  <code>versionCode<\/code>\n<\/a> of every release of your app in the Customer Area must be unique.<\/p>\n<\/li>\n<li>\n<p><strong>Native code<\/strong> :<br \/>\nApps that use native code (NDK) must include libraries that match the payment terminal's CPU architecture.<\/p>\n<ul>\n<li>ARM32 (ARMv7) payment terminals support apps using <code>armeabi-v7a<\/code> or <code>armeabi<\/code> ABIs.<\/li>\n<li>ARM64 payment terminals support apps using <code>arm64-v8a<\/code> ABI.<\/li>\n<\/ul>\n<div class=\"notices green\">\n<p>It is possible to build a single Android app that supports both ARM32 and ARM64 architectures. For more information refer to the official <a href=\"https:\/\/developer.android.com\/ndk\/guides\/abis\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Android documentation<\/a>.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<h2 id=\"permissions\">Allowed permissions<\/h2>\n<p>To keep the payment terminals as secure as possible, we allow only a carefully chosen set of app permissions. These permissions may differ from those on other Android devices that the app is deployed to.<br \/>\nThese are the allowed app permissions:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Permission<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">ACCESS_BACKGROUND_LOCATION<\/td>\n<td style=\"text-align: left;\">Allows access to location in the background.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">ACCESS_COARSE_LOCATION<\/td>\n<td style=\"text-align: left;\">Allows access to approximate location.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">ACCESS_FINE_LOCATION<\/td>\n<td style=\"text-align: left;\">Allows access to precise location.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">ACCESS_MEDIA_LOCATION<\/td>\n<td style=\"text-align: left;\">Allows access to any geographic locations persisted in the user's shared collection.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">ACCESS_NETWORK_STATE<\/td>\n<td style=\"text-align: left;\">Allows access to information about networks.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">ACCESS_WIFI_STATE<\/td>\n<td style=\"text-align: left;\">Allows access to information about Wi-Fi networks.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">BATTERY_STATS<\/td>\n<td style=\"text-align: left;\">Allows the app to collect battery statistics.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">BLUETOOTH<\/td>\n<td style=\"text-align: left;\">Allows the app to connect to paired Bluetooth devices.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">BLUETOOTH_ADMIN<\/td>\n<td style=\"text-align: left;\">Allows the app to discover and pair Bluetooth devices.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">BROADCAST_STICKY<\/td>\n<td style=\"text-align: left;\">Allows the app to broadcast sticky intents.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">CAMERA<\/td>\n<td style=\"text-align: left;\">Allows access to the camera device.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">FLASHLIGHT<\/td>\n<td style=\"text-align: left;\">Deprecated flashlight permission - Covered by CAMERA.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">FOREGROUND_SERVICE<\/td>\n<td style=\"text-align: left;\">Allows the app to use Service.startForeground.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">GET_ACCOUNTS<\/td>\n<td style=\"text-align: left;\">Allows access to the list of accounts in the Accounts Service.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">INTERNET<\/td>\n<td style=\"text-align: left;\">Allows the app to open network sockets.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">READ_EXTERNAL_STORAGE<\/td>\n<td style=\"text-align: left;\">Allows the app to read from external storage.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">READ_PHONE_STATE<\/td>\n<td style=\"text-align: left;\">Allows read-only access to phone state, including the current cellular network information, the status of any ongoing calls, and a list of any PhoneAccounts registered on the device.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">RECEIVE_BOOT_COMPLETED<\/td>\n<td style=\"text-align: left;\">Allows the app to receive the Intent.ACTION_BOOT_COMPLETED that is broadcast after the system  finishes booting.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">RECORD_AUDIO<\/td>\n<td style=\"text-align: left;\">Allows the app to record audio.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">SET_ALARM<\/td>\n<td style=\"text-align: left;\">Allows the app to broadcast an Intent to set an alarm for the user.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">USE_BIOMETRIC<\/td>\n<td style=\"text-align: left;\">Allows the app to use device-supported biometric modalities.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">USE_FINGERPRINT<\/td>\n<td style=\"text-align: left;\">This permission was deprecated in API level 28. Apps should request USE_BIOMETRIC instead.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">VIBRATE<\/td>\n<td style=\"text-align: left;\">Allows access to the vibration feature.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">WAKE_LOCK<\/td>\n<td style=\"text-align: left;\">Allows using PowerManager WakeLocks to keep the processor from sleeping or the screen from dimming.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">WRITE_EXTERNAL_STORAGE<\/td>\n<td style=\"text-align: left;\">Allows the app to write to external storage.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If your app includes a permission that is not on the preceding list, the app will be marked as invalid when you upload it.<\/p>\n<h2 id=\"restrictions\">Restrictions<\/h2>\n<p>Android payment terminals come with certain limitations that you need to take into account:<\/p>\n<ul>\n<li>Launcher apps with the <a href=\"https:\/\/developer.android.com\/reference\/android\/content\/Intent#CATEGORY_HOME\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">CATEGORY_HOME<\/a> intent are not allowed.<\/li>\n<li>In the <em>AndroidManifest.xml<\/em>, the <a href=\"https:\/\/developer.android.com\/guide\/topics\/manifest\/application-element#testOnly\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">testOnly<\/a> flag is not allowed.<\/li>\n<li><a href=\"https:\/\/developer.android.com\/guide\/topics\/ui\/accessibility\/service\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Creating your own accessibility service<\/a> is not allowed.<\/li>\n<li>There is no debug mode on the terminal.<\/li>\n<li>The terminals do not have a browser installed.<\/li>\n<li>The terminals do not have Google Play services installed.<\/li>\n<li>Downgrading the version of an app you installed is not allowed. You can either upgrade the version of your app or uninstall it.<\/li>\n<li>Apps must not request the <code>android.permission.BIND_DEVICE_ADMIN<\/code> permission.<\/li>\n<\/ul>\n<h2>WebView versions<\/h2>\n<p>If you build your app as a <a href=\"https:\/\/developer.android.com\/develop\/ui\/views\/layout\/webapps\/webview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">webapp running with WebView<\/a>, make sure the app is compatible with the following WebView versions that our terminals support. To check your terminal's Android version, refer to the <a href=\"\/pt\/point-of-sale\/android-terminals#terminal-models\">Android terminal model overview<\/a>.<\/p>\n<p>To check what WebView version is currently running on your terminal, go to <strong>Settings<\/strong> &gt; <strong>Device info<\/strong>.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Terminal software version<\/th>\n<th style=\"text-align: left;\">Android 13<br>WebView version<\/th>\n<th style=\"text-align: left;\">Android 10<br>WebView version<\/th>\n<th style=\"text-align: left;\">Android 9<br>WebView version<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">1.120 or later<\/td>\n<td style=\"text-align: left;\">101.0.4951.61<\/td>\n<td style=\"text-align: left;\">135.0.7049.38<\/td>\n<td style=\"text-align: left;\">135.0.7049.38<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">1.114 or later<\/td>\n<td style=\"text-align: left;\">101.0.4951.61<\/td>\n<td style=\"text-align: left;\">130.0.6723.86<\/td>\n<td style=\"text-align: left;\">130.0.6723.86<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">1.109 or later<\/td>\n<td style=\"text-align: left;\">101.0.4951.61<\/td>\n<td style=\"text-align: left;\">91.0.4472.88<\/td>\n<td style=\"text-align: left;\">91.0.4472.88<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">1.108 or earlier<\/td>\n<td style=\"text-align: left;\">(not available)<\/td>\n<td style=\"text-align: left;\">74.0.3729.186<\/td>\n<td style=\"text-align: left;\">91.0.4472.88<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To request a specific WebView version, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/p>\n<h2>Debug and test<\/h2>\n<p>For security reasons, we cannot enable USB debugging via Android Debug Bridge (adb) on our payment terminals. Therefore, it is not possible to debug your application directly on the terminal.<\/p>\n<ol>\n<li>\n<p>To debug your Android app, install the app on a regular (non-payment) Android device that supports USB debugging, and debug the app using adb.<\/p>\n<\/li>\n<li>\n<p>Upload the app to us, install the app on a test terminal, and carry out integration tests by sending Terminal API requests to the terminal through local or cloud communications.<\/p>\n<p>If a bug occurs, you can ask our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to check the logs from the terminal.<\/p>\n<\/li>\n<li>\n<p>For final integration testing, repeat the previous step using your live Customer Area and a live terminal.<\/p>\n<\/li>\n<\/ol>","url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/android-terminals\/app-requirements","articleFields":{"description":"Learn about the requirements and testing of apps for Android payment terminals.","next_steps":[{"title":"Deploy apps to your terminals","description":"Upload apps to Adyen and make them available on your Android payment terminals.","url":"\/point-of-sale\/android-terminals\/deploy-apps","required":false}],"feedback_component":true,"page_id":"5e5f0653-16ea-4dce-8555-7c9a55ce1caa","filters_component":false,"decision_tree":"[]","last_edit_on":"17-03-2026 11:09"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/android-terminals\/app-requirements","title":"Android app requirements","content":"On your Android payment terminal, you can install and use Android apps. These apps must meet certain requirements, because it is critical that the terminals remain secure.\nThis page provides an overview of:\n\nThe requirements your Android apps must meet with regard to specifications, allowed permissions, restrictions, and (if applicable) WebView versions.\nHow you can test your Android apps.\n\nApp specifications\nMake sure that your app meets the following specifications with regard to APK file size, operating system and SDK version, app version, and native code.\n\n\nAPK file size:\nTo distribute the app to your terminals, we need to have the app's Android Package (APK). The maximum file size of the APK is:\n\n200 MB for the live environment.\n700 MB for the test environment.\n\n\n\nOperating system and SDK version:\nThe app must run on a specific Android version, and the AndroidManifest.xml that is included in the APK must have a \n  minSdkVersion\n field. This field specifies the minimum API level required for your app to run, and allows us to verify that your app is supported on the payment terminal.\nFor example, AMS1 running on Android 10 will support minSdkVersion 29 or earlier, but not  minSdkVersion 30 and later.\nThe required Android version and minimum SDK version depend on the terminal model and region, as indicated in the following table.\n\n Work in progress. Currently not all models are available in all regions.\nYou can check terminal availability for your region in your live Customer Area.\n\n\n\n\nTerminal\nRegion\nOS version\nminSdkVersion\nBuild.MODEL\nCPU architecture\n\n\n\n\nAMS1\nAU\/NZ, BR, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA\nAndroid 10\nSDK 29\nAMS1\nARMv7\n\n\nS1E2L\nAU\/NZ, BR, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA\nAndroid 10\nSDK 29\nS1E2L \/ S1E2-L\nARM64\n\n\nS1E4Pro\nAU\/NZ, EU(except Germany)\/UK, UAE,  US\/CA\nAndroid 13\nSDK 33\nS1F4 PRO\nARM64\n\n\nS1F2\nEU\/UK, SG\/HK\/MY, UAE\nAndroid 9\nSDK 28\nSaturn1000F2\nARMv7\n\n\nS1F2 Barcode\nEU\/UK, SG\/HK\/MY, UAE\nAndroid 9\nSDK 28\nSaturn1000F2\nARMv7\n\n\nS1F4Pro\nAU\/NZ, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA\nAndroid 13\nSDK 33\nS1F4 PRO\nARM64\n\n\nS1U2\nAU\/NZ, EU\/UK, JP, SG\/HK\/MY, UAE, US\/CA\nAndroid 10\nSDK 29\nS1U2\nARMv7\n\n\nSFO1\nEU\/UK, US\/CA\nAndroid 13\nSDK 33\nSFO1\nARM64\n\n\n\n\n\nApp version :\nThe \n  versionCode\n of every release of your app in the Customer Area must be unique.\n\n\nNative code :\nApps that use native code (NDK) must include libraries that match the payment terminal's CPU architecture.\n\nARM32 (ARMv7) payment terminals support apps using armeabi-v7a or armeabi ABIs.\nARM64 payment terminals support apps using arm64-v8a ABI.\n\n\nIt is possible to build a single Android app that supports both ARM32 and ARM64 architectures. For more information refer to the official Android documentation.\n\n\n\nAllowed permissions\nTo keep the payment terminals as secure as possible, we allow only a carefully chosen set of app permissions. These permissions may differ from those on other Android devices that the app is deployed to.\nThese are the allowed app permissions:\n\n\n\nPermission\nDescription\n\n\n\n\nACCESS_BACKGROUND_LOCATION\nAllows access to location in the background.\n\n\nACCESS_COARSE_LOCATION\nAllows access to approximate location.\n\n\nACCESS_FINE_LOCATION\nAllows access to precise location.\n\n\nACCESS_MEDIA_LOCATION\nAllows access to any geographic locations persisted in the user's shared collection.\n\n\nACCESS_NETWORK_STATE\nAllows access to information about networks.\n\n\nACCESS_WIFI_STATE\nAllows access to information about Wi-Fi networks.\n\n\nBATTERY_STATS\nAllows the app to collect battery statistics.\n\n\nBLUETOOTH\nAllows the app to connect to paired Bluetooth devices.\n\n\nBLUETOOTH_ADMIN\nAllows the app to discover and pair Bluetooth devices.\n\n\nBROADCAST_STICKY\nAllows the app to broadcast sticky intents.\n\n\nCAMERA\nAllows access to the camera device.\n\n\nFLASHLIGHT\nDeprecated flashlight permission - Covered by CAMERA.\n\n\nFOREGROUND_SERVICE\nAllows the app to use Service.startForeground.\n\n\nGET_ACCOUNTS\nAllows access to the list of accounts in the Accounts Service.\n\n\nINTERNET\nAllows the app to open network sockets.\n\n\nREAD_EXTERNAL_STORAGE\nAllows the app to read from external storage.\n\n\nREAD_PHONE_STATE\nAllows read-only access to phone state, including the current cellular network information, the status of any ongoing calls, and a list of any PhoneAccounts registered on the device.\n\n\nRECEIVE_BOOT_COMPLETED\nAllows the app to receive the Intent.ACTION_BOOT_COMPLETED that is broadcast after the system  finishes booting.\n\n\nRECORD_AUDIO\nAllows the app to record audio.\n\n\nSET_ALARM\nAllows the app to broadcast an Intent to set an alarm for the user.\n\n\nUSE_BIOMETRIC\nAllows the app to use device-supported biometric modalities.\n\n\nUSE_FINGERPRINT\nThis permission was deprecated in API level 28. Apps should request USE_BIOMETRIC instead.\n\n\nVIBRATE\nAllows access to the vibration feature.\n\n\nWAKE_LOCK\nAllows using PowerManager WakeLocks to keep the processor from sleeping or the screen from dimming.\n\n\nWRITE_EXTERNAL_STORAGE\nAllows the app to write to external storage.\n\n\n\nIf your app includes a permission that is not on the preceding list, the app will be marked as invalid when you upload it.\nRestrictions\nAndroid payment terminals come with certain limitations that you need to take into account:\n\nLauncher apps with the CATEGORY_HOME intent are not allowed.\nIn the AndroidManifest.xml, the testOnly flag is not allowed.\nCreating your own accessibility service is not allowed.\nThere is no debug mode on the terminal.\nThe terminals do not have a browser installed.\nThe terminals do not have Google Play services installed.\nDowngrading the version of an app you installed is not allowed. You can either upgrade the version of your app or uninstall it.\nApps must not request the android.permission.BIND_DEVICE_ADMIN permission.\n\nWebView versions\nIf you build your app as a webapp running with WebView, make sure the app is compatible with the following WebView versions that our terminals support. To check your terminal's Android version, refer to the Android terminal model overview.\nTo check what WebView version is currently running on your terminal, go to Settings &gt; Device info.\n\n\n\nTerminal software version\nAndroid 13WebView version\nAndroid 10WebView version\nAndroid 9WebView version\n\n\n\n\n1.120 or later\n101.0.4951.61\n135.0.7049.38\n135.0.7049.38\n\n\n1.114 or later\n101.0.4951.61\n130.0.6723.86\n130.0.6723.86\n\n\n1.109 or later\n101.0.4951.61\n91.0.4472.88\n91.0.4472.88\n\n\n1.108 or earlier\n(not available)\n74.0.3729.186\n91.0.4472.88\n\n\n\nTo request a specific WebView version, contact our Support Team.\nDebug and test\nFor security reasons, we cannot enable USB debugging via Android Debug Bridge (adb) on our payment terminals. Therefore, it is not possible to debug your application directly on the terminal.\n\n\nTo debug your Android app, install the app on a regular (non-payment) Android device that supports USB debugging, and debug the app using adb.\n\n\nUpload the app to us, install the app on a test terminal, and carry out integration tests by sending Terminal API requests to the terminal through local or cloud communications.\nIf a bug occurs, you can ask our Support Team to check the logs from the terminal.\n\n\nFor final integration testing, repeat the previous step using your live Customer Area and a live terminal.\n\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Terminais","lvl2":"Android terminals","lvl3":"Android app requirements"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/android-terminals","lvl3":"\/pt\/point-of-sale\/android-terminals\/app-requirements"},"levels":4,"category":"In-person payments","category_color":"green","tags":["Android","requirements"]}}
