Archive for the 'android' Category

Android Marshmallow: Screen Overlay Detected

I spent the last few days struggling with one of the most frustrating and crippling bugs I’ve had the displeasure of encountering in a while. After finally solving it I wanted to post my solution for reference.

screen-overlay-detected

Issue is: Trying to toggle permissions results in a prompt warning about Screen Overlay Detected. This feature exists because some apps can draw over the top of other apps, such examples are colour/brightness changing apps, screen readers, and also notification apps such as floatify. But such an app could trick you into giving permissions by drawing over the top of the screen with a picture or button and when you click that you’d really be clicking the permissions giving the app dangerous abilities.

Sadly this implementation is pretty poor. There should really be a ‘pause all screen overlay apps’ so that you dont need to turn them all off each time you change a permission, and ideally this pause all screen overlay should be automatic when permissions pages appear, and resumed when they are closed.
The biggest problem is that even after unticking all screen overlay permissions for every app, you can still get this prompt showing, leaving you completely stuck and unable to do anything.

There is a hidden option in the settings to resolve this exact issue.

The solution: Go to Settings, Apps, click the Cog symbol at the top, click Draw Over Other Apps, Ensure all apps are turned off, then if you still have this problem you need to click the hidden dot dot dot menu on the top right of the screen, and then click Reset App Permissions.

appsappscogdraw-over-appsresetapppermissions

This will stop the dialog showing despite having already unticked all screen drawing apps.

However I also found a great app that will pretty much bypass this whole issue, Install Button Unlocker. This app will magically overlay (irony?) buttons over the top of the permissions pages which allow you to interact with the permissions despite this feature trying to block you from doing that.