솔직히 이런것들 한국인보단 외국인들이 훨씬 많이 보겠지만
영어로 쓰는건 많이 무리가 있으니.....ㅋㅋ

우선 첫번째, 설정에서 Activator Listener 뷰를 가져오는 방법.
THEOS 에 포함된 헤더엔 관련 부분이 빠져 있으니 그냥 https://github.com/rpetrich/libactivator/ 에서 libactivator.h 를 가져오도록 하자.

libactivator.h 임포트 후에
 

LAEventSettingsController *vac = [[[LAEventSettingsController alloc] initWithModes:[NSArray arrayWithObjects:@"springboard"@"application"@"lockscreen"nil] eventName:eventName] autorelease];

[self pushController:vac];


와 같이 호출해 주면 된다. 

근데,, 사실 저 코드 만으로는 문제가 있는게, PreferenceBundle Extension 에서 네비게이션의 뒤로가기 버튼을 누를 경우
-(void)setRootController:(id)controller; 메소드를 호출하게 된다.
따라서  LAEventSettingsController 를 상속받는 새로운 클래스를 만들고 -(void)setRootController:(id)controller; 메소드를 만들어 두자..

수정된듯...


======================================================

다음은 Activator Listener 직접 호출. Activator 에다가 이벤트를 등록하지 않고 직접적으로 호출하는 방법이며, Listener 이름만 알고 있으면 된다.
(참고로 Activator 는 리스프링 직후 트윅들이 Activator 에 이벤트를 등록하면서 넘겨주는 delegate 를 가지고 있다가  activator:receiveEvent:forListenerName: 메소드를 호출해주는, 싱글톤 방법을 사용한다.)

역시나 LibActivator 소스에서 가져오는 libactivator.h 를 임포트 해주고
아래와 같이 해주면 된다.
 

event 는 굳이 안만들고 msgSend 에서 event 대신 nil 값을 넣어줘도 크게 상관은 없다...ㅎㅎ



LibActivator Setting Saving Path :
/var/mobile/Library/Caches/libactivator.plist
(휘바골드 님 수정 요청 감사합니다~ ㅎㅎ)

복원 후 Activator 설정을 다시 해주기 귀찮다면 저 파일을 백업해 놓자.
권한은 mobile/mobile 666 

'Mac, iOS' 카테고리의 다른 글

iOS5, 초기화 하지 않고 iCloud 에서 복원하기  (18) 2012.01.13
탈옥 중 기본 어플 사라짐  (2) 2011.12.19
Mac OS X Lion. 매직마우스 불편 설정 방법  (3) 2011.07.22
맥에서 스캔하기  (2) 2011.07.10
iPhoto 휴지통  (0) 2011.06.04
음... MobileSubstration Extension 을 동적라이브러리로 불러도 되는건가..? 뭐 일단 이 문제는 패쓰하고;;

이것 역시 유입경로 보고 하는 포스팅! ㅋ


LibActivator 와 연동하기 위해선 우선
libactivator.h (THEOS 를 사용하기 위해 헤더들을 받았다면 그안에 있다.[<LibActivator/libactivator.h>] 없다면... 구글에 검색하면 아마 나올듯..?)
그리고 libactivator.dylib . 어디서 가져왔는지 기억이 안난다;; 걍 두개다 첨부할께요..ㅠ


뭐.. 별다른 문제 없겠지...?

위 두개를 받아서 프로젝트에 추가한다. 
dylib 파일의 경우엔 Link Binary With Libraries 에 추가해야 되는데 걍 집어넣으면 됬던지 기억은 잘 안난다.
아 몰라 자세한건 알아서해 


libactivator.h 임포트 해주고 

+ (void)load

{

[[LAActivator sharedInstance] registerListener:[self new] forName:@"%%%%%"];

} 

- (void)activator:(LAActivator *)activator receiveEvent:(LAEvent *)event

{

if ( 앱이 활성화 중이라면 ) {


return;

}else{
 

        //callShowWindow();

        [event setHandled:YES]; // To prevent the default OS implementation

    }

}


- (void)activator:(LAActivator *)activator abortEvent:(LAEvent *)event

{

// Dismiss your plugin

    

}
 

를 추가해준다. %%%%%는 알아서 수정해 둘것. 앱이름이나 BundleIdentifier 등으로 해두면 된다. 크게 상관없으니 중복만 안되도록 해줄것. 참고로 나같이 프로그래밍 잘 모르면서 덤비는 사람을 위해 적자면, 따로 load 를 호출안해줘도 된다.
앱 활성화 확인 방법은 걍 간단하게 BOOL 변수 하나 만들어서 사용해도 잘되더라.


그다음 /Library/Activator/Listeners/%%%%%/info.plist 를 만든다. %%%%%는 당연히 알겠지만 위에서 지정한 것과 똑같이 하면 된다. info.plist 에서 String 타입의 Description과 title 키를 만들어 알아서 값 넣어주고 아이콘도 있으면 지정해주면 뜬다. 
 
자. 이제 Activator 에서 보면 내가 지정한대로 뜰것이다.
호출되는지 까지 확인하면 Activator 와 사용할 준비는 끝!
 


제대로 된걸 보려면
http://iphonedevwiki.net/index.php/Libactivator 

'개발개발 > Mac, iOS' 카테고리의 다른 글

THEOS 에서 libactivator 사용하기  (0) 2011.08.11
LibActivator add Event (Not Listners)  (0) 2011.08.08
권한 설정 성공!  (0) 2011.02.24
Xcode - Device Log 보기  (0) 2011.02.23
BundleIdentifier로 앱 정보 구하기  (4) 2011.02.23

+ Recent posts