Skip to main content

Limitations on Android Devices

Secure Screen Limitations - Android 12 - 15 beta

Some applications use SECURE FLAG in their application activities. As a result, sensitive information displayed on the screen is protected from unauthorized access.

We work around the SECURE FLAG display restriction for Android 11 and below.

A new android security enhancement was introduced in Android 12 which only privileged processes can create a secure display (see the relevant Android source code).

As a result, non-privileged apps (Including ours) are blocked from receiving screen displays from secured screens.

Non-instrumented apps with secured screens do not have actual screens displayed. A black image is displayed instead (this includes setting and changing pin codes in the settings app).

In Android 12-14, secured screens supported in Instrumented mode.

To get screenshots from non-instrumented apps such as duo mobile, do one of the following:

OPPO Device Reboot

The USB connection type for OPPO devices is not saved and resets to "Charge Only" after reboot. To make the device usable again, the device setting must be changed manually, which requires physical access.

Therefore, reboot is not supported for OPPO devices.

Launching Chrome - Android 13 - 14

As of Android 13, when using Chrome Version < 110, launching chrome using capabilities (MobileBrowserType.CHROME or MobileBrowserType.CHROMIUM) results in an error.
Instead, use the package and activity name to launch the application.
The following code snippet can be used to launch older versions of Chrome on Android 13.

dc.setCapability("appPackage", "com.android.chrome");
dc.setCapability("appActivity", "com.google.android.apps.chrome.Main");

Chromedriver Limitation

When a web element appears on the page but you get the errors "An element could not be located on the page..." or "not clickable at point...", use this code:

By loadingImage = By.id(element_id);
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));

In-Application Scrolling Limitation

In some cases when ComposeView is used in an application, the views inside it may not be identified properly and therefore won't be able to be scrolled properly. If this issue occurs another scroll implementation that's disabled by default should be used. To enable the implementation:

  1. Add cloud.server.android-use-swipe-command=true to the cloud server's application.properties file.
  2. Restart the cloud server.

Advanced Instrumentation in Applications with Multiple Packages

Advanced instrumentation features are not supported when an application uses com.android.vending.splits. Standard dump instrumentation is supported. These features are affected:

  • Simulate Capture
  • Touch ID
  • Network Capture