Je ne sais pas d'une telle commande, mais vous pouvez certainement construire un vous-même qui simule une pression sur le bouton d'accueil. Cela devrait fermer l'application ouverte de la manière normale. Ce n'est pas un kill
anormal. Si l'application prend en charge le multitâche, elle passera en arrière-plan avec tous les rappels normaux UIApplicationDelegate
en cours de route.
Créez une application iOS non graphique. Il suffit de supprimer l'appel UIApplicationMain()
sur main.m
Liez votre application à GraphicsServices.framework. C'est un framework privé, donc dans la fenêtre de configuration de Xcode Build Phases, où vous choisissez normalement les frameworks à lier, vous ne le verrez pas dans la liste publique. Naviguez sur le système de fichiers jusqu'au dossier Private Frameworks (par exemple /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/PrivateFrameworks
) et sélectionnez-le.
Vous devrez générer des en-têtes pour GSEvent.h (et probablement GSWindow.h, #include). Here you can find a copy of both. Ajoutez-les à votre projet et #include GSEvent.h
dans votre fichier main.m
.
Utilisez cette fonction:
#include "GSEvent.h"
- (void)simulateHomeButton
{
struct GSEventRecord record;
memset(&record, 0, sizeof(record));
record.type = kGSEventMenuButtonDown;
record.timestamp = GSCurrentEventTimestamp();
GSSendSystemEvent(&record);
record.type = kGSEventMenuButtonUp;
GSSendSystemEvent(&record);
}
Ce code devrait être utilisable comme méthode pour fermer l'application en cours (le code est exécuté à l'intérieur du UIApplication qui est au premier plan), ou une autre application ouverte (comme ce serait le cas pour la construction d'un utilitaire de ligne de commande).
Hattip à pour l'idée.
Est-ce que la réponse de Nate vous a aidé? Il est courant d'accepter la réponse ou de baliser et de donner une rétroaction appropriée. – newenglander