Получить список установленных приложений на iPhone
есть ли способ (некоторый API) получить список установленных приложений на устройстве iPhone.
при поиске похожих вопросов я нашел кое-что, связанное с url registration
, но я думаю, что для этого должен быть какой-то API, так как я не хочу ничего делать с приложением, я просто хочу список.
5 ответов
нет, приложения изолированы, и принятые Apple API не включают ничего, что позволило бы вам это сделать.
вы можете, однако, проверить, установлено ли определенное приложение:
- если известно, что приложение обрабатывает URL-адреса определенного типа
- С помощью
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"thisapp://foo"]
вы можете получить список приложений и схем URL из здесь.
для взломанных устройств вы можете использовать следующий фрагмент кода:
-(void)appInstalledList
{
static NSString* const path = @"/private/var/mobile/Library/Caches/com.apple.mobile.installation.plist";
NSDictionary *cacheDict = nil;
BOOL isDir = NO;
if ([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory: &isDir] && !isDir)
{
cacheDict = [NSDictionary dictionaryWithContentsOfFile: path];
NSDictionary *system = [cacheDict objectForKey: @"System"]; // First check all system (jailbroken) apps
for (NSString *key in system)
{
NSLog(@"%@",key);
}
NSDictionary *user = [cacheDict objectForKey: @"User"]; // Then all the user (App Store /var/mobile/Applications) apps
for (NSString *key in user)
{
NSLog(@"%@",key);
}
return;
}
NSLog(@"can not find installed app plist");
}
для не взломанного устройства мы можем использовать стороннюю структуру, которая называется"ihaspp", также его бесплатно и яблоко принято. Также они дали хорошую документацию, как интегрировать и использовать. Может быть, это вам поможет. Удачи!!
Ну, не уверен, что это было доступно, когда был дан последний ответ или нет (до iOS 6) Также это время интенсивное, но простое: Перейти в настройки > генерал >использование. Первая категория в использовании, по крайней мере сейчас, - это хранение.
Он покажет частичный список приложений. В нижней части этого частичного списка находится кнопка с надписью "показать все приложения". Коснитесь этого, и вам придется проходить экран за экраном и делать скриншоты (кнопка быстрой блокировки и кнопка " Домой скриншот.) Я делаю это сейчас, и у меня есть сотни приложений на моем iPhone. Так что это займет некоторое время. Но, по крайней мере, в конце процесса у меня будут изображения всех моих приложений.
вы можете сделать это, используя следующее:
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
SEL selector = NSSelectorFromString(@"defaultWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:selector];
SEL selectorALL = NSSelectorFromString(@"allApplications");
NSMutableArray *Allapps = [workspace performSelector:selectorALL];
NSLog(@"apps: %@", Allapps);
а затем, обратившись к каждому элементу и разделив его, вы можете получить свое имя приложения и даже идентификатор пакета.