Office Hours — Today, January 10

Tuesday, January 8

Jan 10
8:50 AM
Mark M.
has entered the room
Mark M.
turned on guest access
9:05 AM
Leora
has entered the room
Mark M.
hello, Leora!
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...
Now I'm working at a company that makes a parental app
I've been requested to implement child uninstall protection
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
I have read conflicting opinions about this...
9:10 AM
Leora
Do you know if onDisableRequested() is officially working?
It seems to receive the callback, then (my breakpoint) vanishes
Mark M.
I have not played with that in years, sorry
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
(like without password or other protection)
Mark M.
it's the user's device
the user can do what the user wants with it
device admins are there to prevent *other* functionality from working, if the device is not in compliance
(e.g., you can't use the enterprise app unless your password meets certain criteria)
and device admins can help enforce those criteria
device *owner* apps are for cases where somebody else is more important than the user
Leora
what do you mean by other functionality?
9:15 AM
Mark M.
other enterprise apps that are being defended by the device admin policies
for example, you can't access the project app, or the expenses app, or the customer contacts app, unless your device is in compliance
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
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
Android does not really support "parental control apps" -- that's supposed to be a device feature, not an add-on
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
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!'
hahaha
Mark M.
that's either a bug in Android or in the particular device model
(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....
only shows a Toast that password has failed.
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
(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
Yeah I got it, I got it :)
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!
9:45 AM
Leora
has left the room
10:00 AM
Mark M.
turned off guest access

Tuesday, January 8

 

Office Hours

People in this transcript

  • Leora
  • Mark Murphy