我想获得所有安装的应用程序(NSArray)的列表。我的应用程序是越狱应用程序,位于/ Applications,因此Sandbox在那里没有问题。有什么办法可以获得应用商店应用列表吗?我已经在其他应用程序(Activator,SBSettings ...)中看到了这一点。我不知道如何做到这一点,因为所有的应用程序沙箱都有这么大的代码,所以我不知道如何才能访问沙箱内的.app文件夹。获取所有安装的应用程序的列表
24
A
回答
13
您可以使用此代码片段:
#import "InstalledAppReader.h"
static NSString* const installedAppListPath = @"/private/var/mobile/Library/Caches/com.apple.mobile.installation.plist";
@interface InstalledAppReader()
-(NSArray *)installedApp;
-(NSMutableDictionary *)appDescriptionFromDictionary:(NSDictionary *)dictionary;
@end
@implementation InstalledAppReader
#pragma mark - Init
-(NSMutableArray *)desktopAppsFromDictionary:(NSDictionary *)dictionary
{
NSMutableArray *desktopApps = [NSMutableArray array];
for (NSString *appKey in dictionary)
{
[desktopApps addObject:appKey];
}
return desktopApps;
}
-(NSArray *)installedApp
{
BOOL isDir = NO;
if([[NSFileManager defaultManager] fileExistsAtPath: installedAppListPath isDirectory: &isDir] && !isDir)
{
NSMutableDictionary *cacheDict = [NSDictionary dictionaryWithContentsOfFile: installedAppListPath];
NSDictionary *system = [cacheDict objectForKey: @"System"];
NSMutableArray *installedApp = [NSMutableArray arrayWithArray:[self desktopAppsFromDictionary:system]];
NSDictionary *user = [cacheDict objectForKey: @"User"];
[installedApp addObjectsFromArray:[self desktopAppsFromDictionary:user]];
return installedApp;
}
DLOG(@"can not find installed app plist");
return nil;
}
@end
6
在越狱的iPhone上,您只需阅读/Applications
文件夹即可。所有安装的应用程序都会去只需使用NSFileManager
列出的目录中/Applications
:
NSArray *appFolderContents = [[NSFileManager defaultManager] directoryContentsAtPath:@"/Applications"];
2
一些研究,我发现了一个名为iHasApp框架之后。这里是一个很好的解决方案,以返回与应用程序的名称,标识和图标的字典:Finding out what Apps are installed
2
另外还有AppList library
,这将做所有的脏活的你: rpetrich/AppList 它在很多越狱调整中使用,所以我不知道为什么它没有建议在这里。
获取AppStore应用程序的一种方法是检查列表中返回的每个应用程序的值为isSystemApplication
。那些值设为NO
的是常规的AppStore应用程序。还有一个功能applicationsFilteredUsingPredicate:predicate
,所以也许甚至可以事先过滤列表。
相关问题
- 1. 如何获取所有安装的应用程序列表?
- 2. 我如何获得所有安装的应用程序列表?
- 3. 如何获取iPhone中所有安装的应用程序列表(越狱)?
- 4. 获取Django中所有安装的应用程序及其属性列表
- 5. 获取黑莓上所有已安装应用程序的列表
- 6. 如何获取用户安装的所有应用程序?
- 7. 有没有办法获得所有安装的iPhone应用程序的列表?
- 8. 获取已安装的Android应用程序的列表
- 9. 获取已安装的Windows应用程序的列表
- 10. 获取Android设备上安装的应用程序列表 - C#
- 11. Android - 获取安装的应用程序签名列表
- 12. 如何获取Android中已安装应用程序的列表?
- 13. 获取已安装应用程序的列表android
- 14. 获取可以启动的已安装应用程序列表
- 15. 获取已安装的应用程序图标的程序列表
- 16. Alphabatize安装的应用程序列表
- 17. 获取所有正在运行的应用程序的列表
- 18. 获取已安装应用程序列表Windows Mobile(C#托管)
- 19. 从Django应用程序获取所有字符串的列表
- 20. 获取应用程序所需的程序集列表
- 21. 如何获取安装在Android手机上的所有应用程序
- 22. 在android中获取所有已安装应用程序的缓存目录
- 23. 获取所有子序列的列表
- 24. 的Android - 安装的应用程序列表获取时间过长
- 25. 获取远程计算机上已安装程序的列表
- 26. 如何获取所有已安装字体的列表?
- 27. 如何获取在Android中使用gps的已安装应用程序列表?
- 28. Xamarin Android:使用图标获取安装的应用程序列表
- 29. 如何在Windows中使用Ruby获取已安装应用程序的列表?
- 30. 获取计算机上安装的所有驱动程序
这是不是一个私人API? – iJatrat
这不是一个私人API,但我们可以访问私人文件夹。 Apple会拒绝你的应用程序。仅对越狱iPhone使用此代码。 – Igor
@Fedorchuk,我怎么能从普通的iOS设备得到这个安装的应用程序列表,我的意思是没有越狱iPhone,plz帮助我做到这一点。没有越狱iPhone的 – maddysan