2014-10-04 3 views
15

포 그라운드에서 실행중인 응용 프로그램 이름을 얻는 방법? SpringBoard를 사용하는 iOS 7에서 작동하지만 iOS 8에서는 결과를 얻지 못합니다. 어떤 도움을 주셔서 감사합니다. 애플 스토어에 내 앱을 제출할 필요가 없으므로 패치 나 스크립트가 있으면 알려 주시기 바랍니다.현재 포 그라운드에서 실행중인 앱 (제 3 자) 번들 가져 오기 식별자

코드는 내가 새로운 프레임 워크 FrontBoard 사람이이 문제의 밖으로에 도움이 될 것입니다해야 알 보여줄 또한

- (NSMutableString*) getActiveApps 
{ 
mach_port_t *port; 
void *lib = dlopen(SBSERVPATH, RTLD_LAZY); 
int (*SBSSpringBoardServerPort)() = 
dlsym(lib, "SBSSpringBoardServerPort"); 
port = (mach_port_t *)SBSSpringBoardServerPort(); 
dlclose(lib); 

//mach_port_t * port = [self getSpringBoardPort]; 
// open springboard lib 
//void *lib = dlopen(SBSERVPATH, RTLD_LAZY); 

// retrieve function SBFrontmostApplicationDisplayIdentifier 
void *(*SBFrontmostApplicationDisplayIdentifier)(mach_port_t *port, char *result) = 
dlsym(lib, "SBFrontmostApplicationDisplayIdentifier"); 

// reserve memory for name 
char appId[256]; 
memset(appId, 0, sizeof(appId)); 

// retrieve front app name 
SBFrontmostApplicationDisplayIdentifier(port, appId); 

// close dynlib 
dlclose(lib); 
return [[NSString stringWithFormat:@"%s", appId] retain]; 
} 

아이폰 OS 8.0 이하 미세에 노력하고 있습니다?

+1

동일한 문제가 있습니다. 아직 해결책을 얻지 못하고 있습니다. – Birju

+2

Apple에서 iOS 8 이상을 사용 중지했을 수 있습니다. – Anand

+1

FrontBoard가 개인 프레임 워크 인 것처럼 보입니다. 앱 스토어 앱에는 작동하지 않습니다. 당신은 자신의 사용을위한 애플 리케이션을 위해 또는 jailbroken 애플 리케이션을 위해 그것을 사용할 수 있지만, 당신은 그렇게 개인적인 프레임 워크를 사용하려고하면 앱 스토어에 의해 거부 될거야. –

답변