screen overlay detected when my app loads - android

I am getting complaints from my customers that when they load my app, they see a "Screen Overlay Detected" alert message from the system. Note that this only occurs on Android M or higher.
The alert looks something similar to below.
http://i.stack.imgur.com/BEGzf.png
From my understanding, this is caused because some "other" app on the device is requesting the "overlay" permission. I've confirmed with my customers that if they remove the app that has the "overlay" permission, then it fixes the problem but is there anything I can do on my side?
Meaning, is there some way for me to inform the system to not allow this alert dialog to be displayed? It's distracting to my customers to see this every time they load my app and it's more frustrating to "me" that there is nothing I can do to fix this.

It seems that you are using a Screen Filtering app(the brownish overlay on the screen). Turn off and it won't bug you.1

Related

How to disable "Screen is Pinned" dialog android from kiosk mode

iam developing screenlock app for android using a React Native and a little annoyed with the screen pinned dialog that always appears, is there a way to just get rid of it? so what I really want is no dialogue interaction at all with the user
enter image description here
If you're calling startLockTask() and your device isn't set up as a dedicated device with your app whitelisted, then no you can't prevent it:
Otherwise, the current task will be launched into screen pinning mode. In this case, the system will prompt the user with a dialog requesting permission to use this mode. The user can exit at any time through instructions shown on the request dialog.
The dialog is there to help users understand what's happening, give permission for the app to take over their screen, and know how to get out of it later. It's baked into Android by design, so malicious apps can't cause problems - it's just a limitation you have to deal with, unless you're working with a dedicated device (which can be set up to give apps more control and users less)
Have you thought about immersive mode instead, where you hide the nav bar? The user can get out of that too by swiping to reveal the controls, but it's less intrusive. There's no way to automatically lock the user's screen with no interaction though

How is Samsung Alarm app able to display a notification-like overlay on top of any screen the last forever?

Basically what's happening here is an overlay being displayed on any screen (meaning it is not a dialog, nor a notification, nor a ui service)
The closest I can think of is a custom toast message, where toasts usually lasts on any screen at any app, but toasts can't last more than 3.5 seconds as shown here
I need to do something like this, since I need the user to be alerted about an incoming order that he needs to be responding to.
Anything close is welcomed
read about SYSTEM_ALERT_WINDOW permission. it will allow you to drawn on screen on top on your/other apps
BUT afaik above perm will let you draw on top other apps, but not covering system GUI. on your GIF sticky widget with timer is drawn also on top of notifications, thats not possible in Android system even with SYSTEM_ALERT_WINDOW. so yet again Samsung (in fact any manufacturer) modified Android and adjusted to own purposes, made some new possibilities and gave proper permissions for own apps... and you won't use them as you don't know/have API and don't have privileges, which you can't even ask for

How to prevent Screen Capture in Android without using Secure Flag?

I am working on 1 application for Video chatting where I need to implement the following functionalities.
During video chat if anyone tries to capture a screenshot of the screen then he can able to take a screenshot but at that time I need to show a warning popup message and report to the admin.
But if I use "Secure Flag" then it will prevent taking screenshots but I can't able to show a warning popup message and report to a user.
Similar way if anyone tries to capture screen recording then can't able to record and we can show warning popup.
By using "Secure Flag" we can prevent taking screenshots and screen recording but we can't get any event and due to that we can't show warning popup messages.
Neither of those are possible, sorry. Your app is not informed about apps using the media projection APIs, which includes any device-supplied screenshot/screencast tools.

Can no longer open android app (until reinstall)

I've been having reports from users saying that they can no longer open our app; and I have now seen this on my own phone.
When I tap the app icon the screen goes black (showing the title but that's it), then quickly the black screen disappears and you're back in the OS.
Logcat shows zero issues when this happens.
Anyone know what could be happening? This issue has only become apparent within the last few weeks before that there were no reports from users on this particular issue.
EDIT: I've tried restarting the phone, force-stopping the app and clearing the cache+data to no avail.
If your app having use internet or http request over network then write code in method onResume otherwise for http request use asynchronous task

Prevent an app to show on recent application list on android kitkat 4.4.2

I was just bored of iOS and I recently changed to Android. I have a Nexus 5 device, and I've just finished installing my favourite apps in my device.
One of those apps is Line, the famous communication app from naver. I installed it and I configured it with a passcode in order to secure access to it, so no one despite me could see the "confidential" conversations inside.
The problem is even if I have the passcode enabled on line, if someone presses the "Recent list applications" button, they can see perfectly a screenshot of Line with my last conversation, so anyone could see what I was doing in Line.
I made the same test on iPhone and .. surprise ... iOS is taking the snapshot AFTER the passcode screen is enabled, so anyone could see nothing. It seems that in Android the snapshot is taken BEFORE passcode screen is enabled so anyone could see what last line screen looks like :)
So, having read other threads on this forums, I'm supposed to have several ways to solve this:
Wait for LINE's company NAVER to add an option to prevent this app to show on recent app list (adding android:excludeFromRecents="true" on THEIR manifest) [that won't be soon]
Wait for LINE's company NAVER to force the snapshot after passcode screen is enabled [maybe soon but not in company'sroadmap]
Decompile apk and change manifest on my own - or use FLAG_SECURE - (I tried it but when I launch the new app it suddenly dies on startup with a message "Application stopped". I thing LINE's server verifies on startup that the client app is what is expected to be, comparing sizes or something else)
So I don't know more ways to get around this. Do you have any more idea? I'm stucked on it.
Thank you a lot.
Detect when LINE has left foreground
Create a background service that detects if LINE is on foreground and when it leaves the foreground. (https://stackoverflow.com/a/14044662/1683141)
When line has left foreground, you should take action:
A. Stop the line app completely
OR
B. Open & "close" the line app so it will show a locked state in the multitask thumbnail
A possible way to accomplish situation B:
Optionally: detect which app the user has now opened and remember it
Wait a few seconds and open the LINE app again after the user closed it (by intent for example)
Now the LINE app will show the lock screen
Now let the background service open the home screen (or make an intent to the remembered activity)
Now the LINE app is back to the background and it will have a multitask-thumbnail showing the locked screen.
Ofcourse, this will create a loop, and this isn't a stable solution
-Option A is a relatively reliable, and a (in my opinion) good way to accomplish what you want: no one can see your secure chat. Disadvantage is that the application is now removed from multitasking.
-Option B is only an idea, but maybe, if it's done the right way, It could work.
Edit: Option A will not work. The application will not be removed from multitasking if the task is killed.

Categories

Resources