インストールされているすべてのアプリケーション(NSArray)のリストを取得したいと考えています。私のアプリは脱獄アプリであり、/ Applicationsにありますので、サンドボックスは問題ありません。アプリストアアプリのリストを取得する方法はありますか?私はすでに他のアプリでこれを見てきました(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
jailbreakされたiPhoneでは、/Applications
フォルダを読むことができます。インストールされているすべてのアプリケーションがそこに行きます。ただ、NSFileManager
を使用して/Applications
内のディレクトリをリスト:
NSArray *appFolderContents = [[NSFileManager defaultManager] directoryContentsAtPath:@"/Applications"];
2
私はiHasAppと呼ばれるフレームワークを発見したいくつかの研究の後。ここでは、アプリ名、識別子とアイコンで辞書を返すために良い解決策がある:Finding out what Apps are installed
2
のための汚い仕事のすべてを行いますAppList library
は、もありますあなた: rpetrich/AppList これは多くの脱獄の調整で使用されているので、私は以前にここで示唆されなかった理由はわかりません。
AppStoreアプリだけを取得する方法の1つは、リストに返された各アプリの値をisSystemApplication
で確認することです。値がNO
に設定されているものは、通常のAppStoreアプリです。 の機能もありますので、あらかじめリストをフィルタリングすることも可能でしょう。
関連する問題
- 1. Blackberryにインストールされているすべてのアプリケーションのリストを取得
- 2. インストールされているアプリケーションのリストを取得
- 3. iphone objective-cにインストールされているアプリケーションのリストを取得
- 4. すべてのアプリケーションのリストを取得
- 5. インストールされているアプリケーションのリスト
- 6. インストールされているインスタントメッセンジャーアプリのリストを取得するには?
- 7. インストールされているアンドロイドアプリケーションのリストを取得
- 8. インストールされているネットワークカードのリストを取得
- 9. インストールされているプロファイルのリストを取得
- 10. アンドロイド携帯にインストールされているすべての空想のリストを取得する方法
- 11. Goにインストールされているすべてのパッケージの一覧を取得
- 12. iPhoneにインストールされているすべてのアプリケーションの詳細を取得する方法は?
- 13. Androidにインストールされているすべてのアプリケーションアイコンを取得:java.lang.ClassCastException
- 14. インストールされたDBMSのリストを取得
- 15. Java - インストールされているRPMパッケージのリストを取得する方法
- 16. インストールされているビデオプレーヤーのリストをプログラムで取得する方法は?
- 17. インストールされているフォントをリストとして取得します。
- 18. すべてのチェックされた値のリストを取得
- 19. 実行中のすべてのアプリケーションのリストを取得
- 20. すべてのプレイグラウンドのリストを取得
- 21. iPhone SDK:インストールされているアプリケーションのリスト?
- 22. パッケージでインストールされているアプリケーションのリスト
- 23. 起動デーモンからインストールされたアプリケーションのリストを取得する方法
- 24. インストールされているWindowsフックのリスト
- 25. C#:インストールされているスクリーンセーバーの名前を取得する
- 26. グラフを使用してすべての自分のアプリケーションIDのリストを取得
- 27. Androidにインストールされているアプリケーション名を取得する方法は?
- 28. Androidインストールされているすべてのアプリケーションに対してアプリケーションが実行/開かれた回数を取得する方法
- 29. Objective cを使用してiPadにインストールされたアプリケーションのリストを取得する方法
- 30. インストールされているアプリケーションの名称
これは非公開のAPIですか? – iJatrat
これはプライベートAPIではありませんが、プライベートフォルダにアクセスできます。 Appleはあなたのアプリを拒否します。このコードはjailbroken iPhone専用です。 – Igor
@Fedorchuk、どのように私は通常のiOSデバイスからこのインストールされたアプリケーションリストを取得できますか?私はjailbrokenのiPhoneなしでこれを行うのに役立つPLZを意味します。 – maddysan