获取活动应用程序标识符

时间:2014-02-04 18:11:33

标签: objective-c bundle jailbreak identifier

我的问题与其他问题不同,因为我正在为越狱环境编码。我正在编辑的方法属于SpringBoard,并在所有应用程序上创建系统范围的更改。使用此命令:

[[NSBundle mainBundle] bundleIdentifier]

只带来SpringBoard,因为此方法属于SpringBoard。那么有没有办法告诉SpringBoard前哪个应用程序处于活动状态?

2 个答案:

答案 0 :(得分:0)

-(NSString*)topApplication类中有BKSWorkspace方法,它返回最顶层应用程序的包标识符。为了获得BKSWorkspace的有效实例,您需要挂钩它的-(id)init方法来为自己保留和存储实例。 SpringBoard以这样的方式存储这些实例,即在不挂钩init的情况下无法访问它们。

答案 1 :(得分:0)

事情比人们想象的容易。我发现这会带来答案:

SBApplication *front = [[objc_getClass("SpringBoard") sharedApplication] _accessibilityFrontMostApplication];
NSString *runner = front.bundleIdentifier;