MonoTouch: DataProtection: how to programmatically find out, whether Passcode Lock is set? - ios

Is there a chance to check for this additional protection of the device?
Would like to warn users, if only ordinary DataProtection
(without passcode) is set on their devices.
Thanks,
Dilettanto

I don't believe there is any API (MonoTouch or native iOS) that will allow you to determine this.

Related

iOS Detecting whether device password lock is enabled

I'm writing a Today notification center widget which I want to show different information depending on whether or not the device has password lock enabled (basically I want to hide confidential information if the device is password locked). I looked around and couldn't find any good ways to do this. Has anyone been able to successfully do this?
I would not call this best practice, but it should be a workaround:
Try to access data in the keychain. If it works, the device is free, if not it's locked.
Disclaimer: There is a chance this will break in the future with changes around WatchKit. It's not documented yet, but chances are that the watch will be able to access the keychain although the device is locked.
You may be able to enable iOS Data Protection for your app and then use the applicationProtectedDataWillBecomeUnavailable and applicationProtectedDataDidBecomeAvailable methods of UIApplication to detect changes in the password lock setting.
Warning: these API's are not intended for this use, so there's always the risk that Apple will take issue with it and reject your app.
Only for iOS 8, you can use kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly protection level to find out whether or not the device is locked. This frame worked might help you out: https://github.com/liamnichols/UIDevice-PasscodeStatus

Block iOS device

My goal is to block a device under some circumstances and for predefined devices.
I am aware of the LockDevice feature of MDM. I am also aware of the "enforce to set a passcode" feature of MDM.
But is there a way to lock a device with a predefined passcode? (i.e. the passcode is not set, and I want to enforce the user to enter my passcode to use his device)
EDIT: As people said here, MDM makes use of a predefined user's passcode.
It there a workaround for this? Or maybe some other way of achieving my initial goal?
Thanks!
There is no MDM command of configuration profile to do that. Password is always defined by an user.

Is it possible to restrict iOS access via an app?

A client asks me if it is possible to create an app which control access to other apps on iOS ? I think it's ok on Android, but not on iOS.
Technically, can you create an app to restrict user interface when it's on ? Like for children or whatever usage ?
Thanks,
M.
It is not. iOS has built-in features that do this, like Guided Access, but third-party apps are not allowed that amount of control over the system.
Not possible, iOS apps are sandboxed. If Apple allowed this, it would probably cause more harm than good. Don't expect this to become available in the future. Sorry!

iOS - Restricting use to single app

I am developing a business app for use on an iPad/iPod Touch. I am wondering if there is a way to restrict usage on the device to my app only. In other words, we don't want employees installing other apps such as games and playing around with the devices.
Yes, that's possible.
Check out the iOS Configuration Profile Programming Guide.
Edit: See the section about restrictions, it will allow you to do exactly what you need. Note however that you'll need to have access to those devices, ideally the devices should be company property. And you need to distribute your app via Enterprise Distribution.
Edit 2: Since iOS6, this feature is available through the normal settings app. It is called "Guided Access" and is part of the Accessibility settings. It will let you disable the home button (cancel guided access by triple-clicking the home button and enter the preset code) and it will even let you define areas within apps which should be disabled.
I don't think so, unless their device is jailbroken.
If they're logged into an Exchange server you could remote-wipe their phone if they install anything.
Do you provide the devices? Or they bring their own?
If you provide the devices that would mean you can use your Apple-id. If an employee would try to download any other app he would need the password of your Apple-id. So thats a simple way to prevent that.
Im am not sure if there is a total "lock" of such type.

Is it possible to remove the ability to delete SMS text messages?

Is there any way, jailbroken or not, to block or remove the ability to delete messages from the "Messaging" app on an iPhone. If not would this be something one would be able to program in an app to remove the option forcefully on a jailbroken phone?
Without modifying iOS, AFAIK, you can't get this functionality, and why would you want to do this in the first place?
Not jailbroken: no
Jailbroken: yes using mobile substrate this could be made possible.

Resources