We are working on a mobile app with a feature that allows parents to restrict or disable certain phone functions on their children's devices.
I have been googling for this for a while and can't find an adequate search term.
Ultimately I would like to create a table that outlines various phone features and indicates whether a native mobile application can restrict or disable it. This will be used to indicate the differences between iOS, Android, and Windows Phone development capabilities.
Some features I am looking to modify are: app use, phone calls, text messages, internet access, etc. For restrictions such as phone calls and texts, I'd also like to determine if we can allow a "white list" of allowed contacts.
Thanks for your time.
Windows Phone doesn't have any mechanisms to allow one app to restrict what the user / other apps can do. It does have the Kids Corner feature that enables parents to limit what apps a child can use (and some features within those apps, like In-App-Purchases) but not individual features.
iOS already has a pretty rich parental control center built into the Settings app. I don't believe there is an API that would allow you access those features either. In general, this type of inter-app communication is very limited on iOS.
Related
I work on an app with iOS and Android versions and am looking to know more about our users who have accessibility requirements.
There are two pieces of info I'd love to have:
How many of our users on iOS and Android already use accessibility features like voice over, switch control, font scaling, or color and motion settings (amongst many other options).
How many users generally use these features?
I'm having a very hard time using the Google to answer these questions, so any advice would be well received.
My goal is to write an application for Android (>= 9.0) which basically offers a device-owner-style control like Google's "Android Device Policy".
The following criteria have to be met:
Zero dependency on Google servers or any other 3rd party infrastructure like existing EMM solutions (MobileIron et cetera)
The user should not be able to remove or disable the app
Provisioning methods: QR-Code, NFC, URL, ADB, actually any "local" way ...
Has to work with stock androids on regular consumer devices
In short: I'd like to write an unremovable device manager (including a web-based management UI), put it on a device I own, give that device to someone else, and being able to fully control the device remotely.
Is such a project even possible with the current situation of Android?
No.
Has to work with stock androids on regular consumer devices
Mostly, this is your biggest hurdle to overcome.
What you are asking for is the description of a very powerful MalWare. An app that ca run on any version of Android, that can't be uninstalled, but can do what it wants to "fully control the device".
If you move away from the idea of "stock android on regular consumer device", towards a suite of devices you have some say in distributing:
Here is a list of Google Partners who offer an EMM solution: https://androidenterprisepartners.withgoogle.com/emm/
Here is Samsungs effort at device control:
https://www.samsungknox.com/en
Here is Googles device management:
https://developers.google.com/android/management
You could write your own ROM of Android and be able to control the things you want, but that would require .. building a ROM aka a whole phone OS forked from AOSP.
The user should not be able to remove or disable the app
This is only possible if you have a system app.
Or something extreme (which with any extreme, is always possible to have problems), like having two apps, and they monitor each other for uninstall, and programatically reinstall (vs 1 app that can't do much when it is being uninstalled).
I'm making an Android app that is used as POS in some business. In order to gain attraction the app is given with the phone, an Internet line and the app. I want to restrict phone calls, whatsapp, SMS and so other. I want the phone to boot directly in my app.
I was looking into Cyanogenmod but couldn't find any information on how to do this.
I mean, isn't it my hardware?
EDIT
I'm open to use other OS.
My device is a Samsung Trend initially.
I've read that you can replace an .apk and start your own app instead of the android menu (I know the user can then change the .apk, so still, it seems the better solution, anyway I couldn't find any information on how to do this)
I'm not 100% clear what you're asking for (you're giving away an entire phone with your app!?) and you didn't mention the phone model or Android version you are using, but there are apps out there which allow you to restrict a phone's ability to run or access certain features. (To find more, just search the Google Play Store for "kiosk".)
Android 4.2 on tablets introduced multiple user accounts, which were expanded in Android 5 Lollipop to phones with "profile accounts", which can be used to restrict access to apps and services. Screen pinning is another feature you can use to lock a particular app to the screen so that it can't be removed without entering a password.
It is your hardware, and as such you can also take more extreme measures by modifying the Android frameworks directly to restrict functionality, by say, removing the dialer. But if you're actually giving away phones with your app, there's always a possibility the new owner will restore the functionality and/or replace the ROM completely.
Here is my scenario,
I am looking at solutions like Good for Government, which allows a government agency to restrict access to system applications in iOS and Android via a web server/enterprise solution. This is what they describe their solution does:
Helpdesk personnel can quickly troubleshoot issues, with complete
visibility into all iOS devices deployed within the agency. To
protect agency data, you can enforce policies, such as requiring
passwords and preventing cut/copy/paste from the Good app. You can
also block unapproved applications such as YouTube, the Safari
browser, camera, or the App Store. In the event the device is lost
or stolen, you can remote-wipe agency data. Self-service
capabilities allow you to empower employees with basic tasks, such as
adding devices or remote wiping their own devices.
Is this at all possible to recreate? Of course for a different purpose, but if I could restrict access to certain system applications with a set code, and only to be unblocked again by a qualified person within a data center?
If someone could point me in the right direction to be able to do such things with iOS, and Android if possible as well, it would be more than appreciated.
Some of these things are possible using Device Administration introduced in Android 2.2
http://developer.android.com/guide/topics/admin/device-admin.html#policies
e.g
Remote Wipe
, Disable Camera
iOS has some of these features like Device Administration, Remote Wipe, Ability to control which apps can be disabled..
http://images.apple.com/iphone/business/docs/iOS_Security.pdf
Some background information:
I currently sell a niche software product for Windows PCs. Some of my clients are expressing heavy interest in rolling out similar functionality to their Android and iPad users. I am not an Android or iOS developer. My software solution restricts user access to a computer by disabling the screen while some specific hardware is giving a certain signal.
The essence of my question:
Is is possible, on either Android or iOS, to programmatically restrict access to the device while an app is in a certain state.
This could involve any of the following:
Preventing the user from changing apps or returning to the home screen while the app is in a certain state.
Locking the screen while the app is in a certain state.
Turning the screen off (or completely disabling the screen) while the app is in a certain state.
I imagine this isn't something "normal" apps could do - the malware implications are quite horrible. For my purposes, it is acceptable if some certain administration actions or special install steps are taken.
For regular (I will later decode meaning of word regular) Android device it's impossible, since always there's a possibility for end-user press magic button "HOME" and you can access to any device features. HOME button can't be intercepted by any application - it's low-level restriction.
Under regular I mean Android device with standard kernel. But there's a possibility to hack kernel and rewrite those restriction related to HOME button, for sure after that you'll be solely responsible for all kind of support, update and so on.
About iPhone: it's not my field - I don't know.