Jan 10 | 8:50 AM |
Mark M. | has entered the room |
Mark M. | turned on guest access |
Jan 10 | 9:05 AM |
Leora | has entered the room |
Mark M. |
hello, Leora!
|
Mark M. |
how can I help you today?
|
Leora |
Hi Mark. How are you?
|
Mark M. |
OK, and you?
|
Leora |
Not bad. I chatted with you last year...
|
Leora |
Now I'm working at a company that makes a parental app
|
Leora |
I've been requested to implement child uninstall protection
|
Leora |
When the child attempts to uninstall the app, a PIN code will be requested
|
Mark M. |
that's not officially possible, and I am sorry but I do not help with unofficial solutions to that sort of problem
|
Leora |
I have successfully received the admin privelage when first running the app, approving the permission
|
Leora |
I have read conflicting opinions about this...
|
Jan 10 | 9:10 AM |
Leora |
Do you know if onDisableRequested() is officially working?
|
Leora |
It seems to receive the callback, then (my breakpoint) vanishes
|
Mark M. |
I have not played with that in years, sorry
|
Mark M. |
but that is not supposed to be displaying its own UI in any case
|
Leora |
So...I kind of don't understand the point of device admin if the user can uninstall it at any time
|
Leora |
(like without password or other protection)
|
Mark M. |
it's the user's device
|
Mark M. |
the user can do what the user wants with it
|
Mark M. |
device admins are there to prevent *other* functionality from working, if the device is not in compliance
|
Mark M. |
(e.g., you can't use the enterprise app unless your password meets certain criteria)
|
Mark M. |
and device admins can help enforce those criteria
|
Mark M. |
device *owner* apps are for cases where somebody else is more important than the user
|
Leora |
what do you mean by other functionality?
|
Jan 10 | 9:15 AM |
Mark M. |
other enterprise apps that are being defended by the device admin policies
|
Mark M. |
for example, you can't access the project app, or the expenses app, or the customer contacts app, unless your device is in compliance
|
Mark M. |
each of those apps would have device admin policies as part of their apps, and they prevent the app from working if the policies are not being met
|
Leora |
so is it possible to make an uninstall lock for the enterprise app?
|
Mark M. |
hopefully not
|
Mark M. |
AFAIK, every single "uninstall lock" is basically malware techniques being used for vaguely legitimate uses
|
Leora |
but our competitors ask for a password when trying to uninstall the child :/
|
Mark M. |
and Android slowly fixes those malware techniques
|
Mark M. |
Android does not really support "parental control apps" -- that's supposed to be a device feature, not an add-on
|
Mark M. |
all such apps are trying to push the bounds of what Android supports
|
Leora |
I certainly understand this stance
|
Mark M. |
so, I'm not saying that what you want is impossible -- clearly, it can be done
|
Leora |
but don't necessarily agree with it - not only as an employee, but as a parent
|
Mark M. |
as a parent, buy a device that has parental controls as part of it, if you want to use the device in that sort of role
|
Leora |
I understand
|
Mark M. |
for example, Amazon's Fire tablets have good stuff for this, as I understand it
|
Jan 10 | 9:20 AM |
Leora |
I just don't understand the point of giving devs access to the onDisableRequested callback if we can't use it AT LEAST to warn the user with a popup
|
Mark M. |
you return a message from that callback, which will be integrated into the device admin disable screen
|
Leora |
Unfortunately it wasn't integrated
|
Mark M. |
this message will warn the user of the impacts of revoking this control (e.g., "you will no longer be able to fill in your timesheet, so you will no longer get paid")
|
Leora |
I know cause i tried to return 'you fool!'
|
Leora |
hahaha
|
Mark M. |
that's either a bug in Android or in the particular device model
|
Mark M. |
(as device manufacturers tend to tinker with this sort of thing)
|
Leora |
I understand. Well thanks Mark for the usual candor!
|
Mark M. |
sorry that I didn't have better answers for you
|
Leora |
So your device admin app/password is if the user has a password on the lock screen?
|
Mark M. |
sorry, I did not understand that question
|
Leora |
your 'passwordEnforcer' app in the samples....
|
Leora |
only shows a Toast that password has failed.
|
Jan 10 | 9:25 AM |
Leora |
since it has no UI, I assume the password entered will register correctly when the user enters a password to unlock their screen?
|
Mark M. |
yes, the device admin APIs involving a password are referring to the lockscreen
|
Mark M. |
(and by "lockscreen" I mean "the real device lockscreen, not some app that claims to be a lockscreen app")
|
Leora |
Ok thanks sooooo much for your time
|
Leora |
Yeah I got it, I got it :)
|
Leora |
Time for A workaround ;)
|
Mark M. |
be sure to test on lots of hardware
|
Leora |
For sure, I already see discrepancies. Thanks. Have a good one!
|
Jan 10 | 9:45 AM |
Leora | has left the room |
Jan 10 | 10:00 AM |
Mark M. | turned off guest access |