J'ai une application qui doit obtenir la liste des applications installées (autres, peut-être peut-être une tierce partie) sur l'appareil. Comment ceci peut être fait? Ou peut-il être fait du tout? P>
6 Réponses :
Il n'y a pas d'API publique d'Apple à récupérer une telle liste de l'appareil iOS (iPod Touch / iPhone / iPad) P>
-(NSArray *) installedApps
{
BOOL isDir enter code here= NO;
NSDictionary *cacheDienter code herect;
NSDictionary *user;
static NSString *const cacheFileName = @"com.apple.mobile.installation.plist";
NSString *relativeCachePath = [[@"Library" stringByAppendingPathComponent: @"Caches"] stringByAppendingPathComponent: cacheFileName];
NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent: @"../.."] stringByAppendingPathComponent: relativeCachePath];
if ([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory: &isDir] && !isDir) // Ensure that file exists
{
cacheDict = [NSDictionary dictionaryWithContentsOfFile: path];
user = [cacheDict objectForKey: @"System"]; // Then all the user (App Store /var/mobile/Applications) apps
}
//NSLog(@"Installed Applications = %@",[user allKeys]);
//return [user allKeys];
return nil;
}
this will give you the array of name of installed app using private API
Ne fonctionne pas sous iOS 6 sur l'appareil. Le fichier n'existe pas.
Je doute si quelque chose est disponible (si certains iPhone sont jailbribés et que l'utilisateur peut accéder au système de fichiers, il sera possible, mais je ne suis pas au courant de cela.), Mais vous pouvez utiliser après lien < / a> et avec l'aide de cela, vous pouvez vérifier la présente que toutes les applications sont présentes et que vous pouvez personnaliser avec certains de vos besoins. P>
Vous pouvez numériser toutes vos applications via Apple Private Framework "MobileInstallationInstall".
La méthode est comme ci-dessous: p> Il ne peut être utilisé que dans les périphériques JB. p> p>
Réellement. Il pourrait également être utilisé sur un dispositif emprisonné. Cependant, vous ne pouvez pas obtenir une application avec ce code à AppStore, car c'est une API privée.
Comment puis-je obtenir les en-têtes pour mobileInstallationInstall?
@Ewyyntomato: Les en-têtes ont pu être trouvés comme exemple ici: Github .com / cythility / iOS-inverse-en-têtes / blob / maître / ...
Ceci ne propose pas d'applications installées, mais vous pouvez obtenir une liste d'applications exécutées en arrière-plan et leurs processus concernés par ce code.
appel de la vueDidLoad - p> . p>
La réponse de Magicd et le commentaire de Victor de Magicd avec le lien vers le fichier d'en-tête m'a aidé à résoudre ceci.
Je voulais ajouter que vous devez ajouter la mobileInstallation.framework dans les "Cadres et les bibliothèques liées" dans XCode. J'ai trouvé ce cadre ici: p>
/applications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/sdks/iphoneos7.1.sdk/system/library/privateframeworks P> < P> Je peux confirmer que cela fonctionne sur un périphérique non jailbreaké. L'App Store n'est pas une préoccupation pour moi. P>
Voici le code que j'ai utilisé: p>
Ceci est en double, veuillez vous référer à la suite de threads- Stackoverflow.com/questions/4614114/...
Existe-t-il des bibliothèques tierces pour faire ce truc?
merci@rishi. J'ai manqué ça. S'il vous plaît répondez à ma question avec votre commentaire.
Je doute que si quelque chose est disponible, mais vous pouvez utiliser le lien suivant- iPhonedevsdk.com/forum/iphone-sdk-development/.../a> et avec l'aide de ce que vous pouvez vérifier la présente application.
S'il vous plaît, répondez à ma question avec votre commentaire (il sera marqué comme accepté)