web-dev-qa-db-fra.com

Comment puis-je activer par programmation l'accès guidé (mode Kiosk) sur un iPhone?

Question

Comment automatiser Accès guidé mode sur un iPhone? J'aurai besoin d'automatiser l'activation et la suppression de cette fonctionnalité

Contexte Cette application de l'État de l'Iowa utilise une application iOS pour afficher votre permis de conduire. Le problème est qu’après avoir remis votre téléphone aux autorités, elles ont un accès complet à l’appareil.

Si je dispose du code source de cette application ou d'une application similaire, comment puis-je demander un mot de passe lors de la désactivation du "mode Kiosque" temporaire, de sorte que les photos, les e-mails ou les messages texte ne soient pas disponibles sur le téléphone ou (idéalement) de l'USB.

J'ai trouvé cette solution similaire pour Android , mais je recherche maintenant une solution iOS

15
random65537

Vous pouvez entrer et quitter le mode d'accès guidé à partir de votre application. Cependant, pour ce faire, le périphérique doit être supervisé et disposer d'un profil MDM avec l'ID de bundle de l'application dans la liste des applications pouvant demander le mode d'accès guidé (la clé est autonomousSingleAppModePermittedAppIDs

Une fois que cela est fait, pour entrer en accès guidé, procédez comme suit:

UIAccessibility.requestGuidedAccessSession(true){
    success in
    print("Request guided access success \(success)")
}
40
jrturton

Sous iOS 7

Vous ne pouvez pas mettre un périphérique iOS en mode Kiosque par programmation, vous ne pouvez rien faire dans votre application pour en faire une application Kiosk (vous ne pouvez pas désactiver les événements du bouton d'accueil par programmation ni les obtenir dans votre application). )

Pour que l'appareil fonctionne en mode Kiosk, vous pouvez utiliser le Accès guidé d'Apple . Mais vous ne pouvez pas l'activer par programme. Pour plus d'informations, consultez ici


iOS 7 et 7+

Vous pouvez utiliser:

void UIAccessibilityRequestGuidedAccessSession(BOOL enable, void(^completionHandler)(BOOL didSucceed))

Référence UIAccessibilityRequestGuidedAccessSession

UIAccessibilityRequestGuidedAccessSession

Transforme l'application de ou vers le mode Single App de manière asynchrone. Declaration

Swift

func UIAccessibilityRequestGuidedAccessSession (_ enable: Bool, _ completionHandler: ((Bool) -> Annulé)!)

Objective-C

void UIAccessibilityRequestGuidedAccessSession (activation de BOOL, annulation (^ completionHandler) (BOOL a réussi)); Les paramètres permettent 

Spécifiez YES pour mettre l'appareil en mode Single App pour cette application ou NO Pour quitter le mode Single App.

completionHandler 

Le bloc qui informe votre application du succès ou de l'échec de l'opération . Ce bloc prend le paramètre suivant: didSucceed 

Si la réponse est OUI, l'application est passée du mode Single App à l'application. Si la réponse est NON, l'application ou l'appareil n'est pas éligible pour le mode Single App ou Est une autre erreur. Discussion

Vous pouvez utiliser cette méthode pour verrouiller votre application en mode Application unique et pour La libérer de ce mode ultérieurement. Par exemple, une application de prise de test peut Entrer dans ce mode au début d'un test et le quitter lorsque l'utilisateur Termine le test. L'accès au mode d'application unique est pris en charge uniquement pour les appareils Supervisés à l'aide de la gestion des appareils mobiles (MDM) et L'application elle-même doit être activée pour ce mode par MDM. Vous devez équilibrer Chaque appel pour passer en mode Single App avec un appel pour quitter ce mode.

Comme l'entrée ou la sortie du mode Single App peut prendre un certain temps, cette méthode S'exécute de manière asynchrone et vous informe des résultats à l'aide de Le bloc d'achèvementHandler. Déclaration d'importation

importer UIKit Disponibilité

Disponible dans iOS 7.0 et versions ultérieures.

Vous pouvez également utiliser UIAccessibilityIsGuidedAccessEnabled pour vérifier si l'accès guidé est activé ou non.

8
Midhun MP

Selon la documentation, Il existe deux façons de permettre à votre application iOS de fonctionner en mode kiosque.

Profil de configuration : À l'aide de la gestion des appareils mobiles (MDM), nous pouvons créer un profil de configuration d'entreprise et le transmettre à un appareil à l'aide de n'importe quel MDM, notamment MobileIron ou à l'aide d'un utilitaire de configuration pour iPhone. . Une fois ce profil installé, la première application lancée lors du redémarrage de l'appareil sera la seule à s'exécuter jusqu'à ce que vous redémarriez à nouveau l'appareil.

Accès guidé (iOS 6 et supérieur) : Depuis iOS 6, nous pouvons y parvenir en utilisant deux méthodes, à savoir Guide Access & Supervised Access. Ces deux méthodes traitent des fonctionnalités de contrôle de l'accessibilité, telles que permettre à l'utilisateur d'avoir un accès restreint à son appareil. Cela ne peut être réalisé que si nous avons un accès complet à l'appareil.

Nous pouvons configurer le mode Kiosque dans une application iOS par programme dans iOS 7 à l'aide d'une méthode UIKit UIAccessibilityRequestGuidedAccessSession. Selon la documentation pour les développeurs Apple, 'UIAccessibilityRequestGuidedAccessSession transforme l'application en mode Single App de manière asynchrone'.

Comme indiqué dans le document du développeur Apple:

UIAccessibilityRequestGuidedAccessSession

Effectue une transition asynchrone de l'application vers ou depuis le mode Application simple.

void UIAccessibilityRequestGuidedAccessSession(BOOL enable, void(^completionHandler)(BOOL didSucceed))

Paramètres

enable

Spécifiez YES pour mettre l'appareil en mode Single App pour cette application ou NO pour quitter le mode Single App.

completionHandler

Le bloc qui informe votre application du succès ou de l'échec de l'opération. Ce bloc prend le paramètre suivant:

didSucceed

Si la réponse est OUI, l'application est passée ou passe en mode application simple. Si la réponse est NON, l'application ou l'appareil n'est pas éligible pour le mode Application unique ou s'il y a une autre erreur. Discussion Vous pouvez utiliser cette méthode pour verrouiller votre application en mode Application unique et la libérer de ce mode plus tard. Par exemple, une application de prise de test peut entrer dans ce mode au début d'un test et le quitter lorsque l'utilisateur termine le test. L'accès au mode Single App n'est pris en charge que pour les appareils supervisés à l'aide de la gestion des appareils mobiles (MDM) et l'application elle-même doit être activée pour ce mode par MDM. Vous devez équilibrer chaque appel pour passer en mode Single App avec un appel pour quitter ce mode. Comme l'entrée ou la sortie du mode Single App peut prendre un certain temps, cette méthode s'exécute de manière asynchrone et vous avertit des résultats à l'aide de la variable completionHandlerblock.

Availability
Available in iOS 7.0 and later.

Voir également

UIAccessibilityIsGuidedAccessEnabled

Déclaré dans

UIAccessibility.h
4
Hussain Shabbir

D'après ce que j'ai compris, cela ne peut pas être fait avec du code. Sur un périphérique non jailbreaké, vous devrez ensuite créer un démon qui s'exécute en tant qu'écouteur.

La chose la plus proche que vous puissiez faire est de configurer "Accès guidé" sur votre appareil et de le lier à la pression du bouton triple accueil.

Vous trouverez plus d’informations sur l’accès guidé here

0
Naughty_Ottsel