Search code examples
androidandroid-animationandroid-permissionsandroid-espressoandroid-instrumentation

How to disable animations in code when running Espresso tests


Has anybody managed to disable animations through code when running Espresso tests? I've been trying to follow the instructions in this webpage (linked to from here):
https://code.google.com/p/android-test-kit/wiki/DisablingAnimations

Unfortunately it does not appear to be working, as I keep seeing this permissions error:

04-27 15:48:28.694      303-342/system_process W/PackageManager﹕ Not granting permission android.permission.SET_ANIMATION_SCALE to package com.cookbrite.dev (protectionLevel=50 flags=0x18be46)

I was really hoping to avoid reconfiguring my device/emulators. We frequently run individual tests locally and it will annoy me if I have to keep toggling settings.

I noticed some other developers complaining that this doesn't work, so I might not be alone:
https://groups.google.com/forum/#!msg/android-test-kit-discuss/TCil7kMQRTM/QK1qCjzM6KQJ


Solution

  • I finally got this to work. Here is a Gist listing the required steps:
    https://gist.github.com/daj/7b48f1b8a92abf960e7b

    The key step that I had missed was running adb to grant the permission:

    adb shell pm grant com.mypackage android.permission.SET_ANIMATION_SCALE    
    

    Adding the permission to the manifest and running the reflection steps did not seem to be enough on their own.