List of bugs found with Samsung devices [Ongoing documentation]

In my experience, I have found that Samsung devices tend to be the worst set of Android devices to attempt automating with. Sadly for us, Samsung devices are also one of the most popular set of Android devices, so it is not acceptable to simply and quietly ignore Samsung from our automation scripts.

I’m making this thread as a form of documenting all the various quirks or bugs found with Samsung devices and systems that make life difficult when automating. Some of these might not even be considered bugs, but they are definitely things to take note of when working with Samsung devices:


Some Samsung devices will not reliably return UI XML dumps that include WebViews.

You don’t need to enable WebView debugging to note that there is a WebView available in hybrid apps, since the XML dump will simply represent the entire WebView as “android.webkit.WebView”. As an example of the issue I see here, one of the Samsung devices I work on will include the WebView’s UI XML information when I make a UI dump. If I request another UI dump after the first dump completes, the WebView information will mysteriously disappear.

Sometimes a simple tap or touch inside the WebView will cause the device to return WebView information in subsequent UI dumps. This applies to some Samsung devices, and I do not yet have enough information to conclude if all Samsung devices exhibit this behavior. I most certainly do not recall this behavior ever occurring on non-Samsung Android devices.


Samsung’s customized Android system interface will change how certain actions should be performed by both users and automation code.

Samsung likes to use its own UI for its Android systems. On some devices, this UI includes a special UI drawer that the user can pull out from the right edge of the screen. This is a problem because Android systems with the standard UI do not have such a UI element. This means that if your automation scripts ever perform any sort of swiping from near the right edge of the screen towards the left side of the screen, your script will actually pull out this system drawer rather than perform whatever action you intended for your app.

This also applies to application designers. Beware of Samsung devices if you have a right-to-left navigation drawer built into your app.


Some Samsung devices do not include resource IDs through uiautomatorviewer


Some Samsung devices (such as the Galaxy S4) will momentarily be disconnected from ADB shortly after connecting to ADB. The only workaround I have for this is to wait a little while before running a test on such a device.


Some Samsung devices have trouble with unlocking


Samsung devices can drop adb connections after a period of stability

2 Likes

Hi,

With Samsung S4 mini I was not able to identify any resource-id. After some investigation I found out I was not the only one:
https://code.google.com/p/android/issues/detail?id=74661

1 Like

@afwang Thanks for creating this, I’ll try to add things I find.
Just a suggestion, Can you add workarounds against the issues if they have one or mention that they don’t have any solution.

Absolutely. It’s just that I haven’t really found workarounds for most of these issues. :stuck_out_tongue:

Some Samsung devices’ lock screens will not be unlocked by the Appium unlocker, such as some Samsung Galaxy S4’s.

Some Samsung devices will drop their adb connections even after the initial “unstable” period after connecting. Disconnecting and reconnecting the device has not shown any progress. Disabling and then re-enabling the device’s and host’s ADB servers has not been fruitful. At this point, I would normally double-check what the USB storage connection type the device is set to (e.g. some devices will only allow ADB access when their storage mode is set to one of PTP or MTP), however my problematic Samsung device has no option to toggle the storage type. Rebooting the device is not helpful either.

@afwang I don’t have any samsung device right now can you try killing and starting ADB server.

Just tried to do so. I’ve also restarted the VM, updated the Android SDK tools, restarted the host machine the VM sits on, all to no avail. Fortunately enough, the device still responds to the ADB server on my dev machine, so I can still use it for other uses. Otherwise, I currently can’t use it for my scheduled automation runs.