2011-01-09 11 views
3

を使用してバックグラウンドモードからVOIPアプリケーションを再起動する - このアプリはApp Storeに入る必要はありません。プライベートAPIの

私は、次の線に沿って何かが動作するはずと思っています:

mach_port_t *p; 
void *uikit = dlopen(UIKITPATH, RTLD_LAZY); 
int (*SBSSpringBoardServerPort)() = 
dlsym(uikit, "SBSSpringBoardServerPort"); 
p = (mach_port_t *)SBSSpringBoardServerPort(); 
dlclose(uikit); 

void *sbserv = dlopen(SBSERVPATH, RTLD_LAZY); 
int (*setAPMode)(mach_port_t* port, const char* appID, BOOL suspended, void* unknown, void* unknown2) = 
dlsym(sbserv, "SBSLaunchApplicationWithIdentifier"); 
setAPMode(p, "com.apple.weather", NO, nil, nil); 
dlclose(sbserv); 

私が原因それが認証トークンを必要とするという事実に思われるEXC_BAD_ACCESSを取得していますが - 私が間違っている可能性がしかし、。

代わりに私は、以下のものを使用してしようとしている:

Class $SBApplicationController=objc_getClass("SBApplicationController"); 

NSLog(@"[$SBApplicationController sharedInstance], %@", [$SBApplicationController sharedInstance]); 

悲しい出力がnullである - ので、私は、これはアプリケーション内で行うことができないと思います。

アイデア?これは私を夢中にさせている - ありがとう!

+0

解決方法はありますか? – adruzh

+0

@ rhodesy22こんにちは、SBSSpringBoardServerPortの使い方を教えてください。 [ここをクリック](http://stackoverflow.com/questions/10204785/special-api-to-launch-an-app-from-my-application)は私の質問 – ilhnctn

答えて

1

iOSサンドボックスは、iOSで起動していないプロセスをブロックまたは強制終了します。

+0

ありがとう、しかし、SBSSpringBoardServerPortメソッドのようなものを使用しています技術的には、春のボードのサービスアクションを起動していないですか?私は画面を暗くし、電話をロックし、飛行機モードをオンにして、その方法を使用して一番最初のアプリを一時停止することができます。 –

+0

2rhodesy22:SBSLaunchApplicationWithIdentifierやその他のこのようなメソッドには、springboardにはカスタムアプリケーションにはない "com.apple.springboard.launchapplications"という資格が必要です。 –

関連する問題