プライベートAPIで画面がロックされているか確認したい。
そして、Googleからいくつかのコードを取得します:
#import <SpringBoard/SpringBoard.h>
#import <SpringBoard/SBAwayController.h>
Class clsAway = objc_allocateClassPair(clsAlert, "SBAwayController", 0);
objc_registerClassPair(clsAway);
Class clsAwayController = objc_getClass("SBAwayController");
SBAwayController * controller = [clsAwayController sharedAwayController];
if ([controller isLocked]){
NSLog(@"double check Home ,now YES Lock");
}
else{
NSLog(@"double check Home ,now NO Lock");
}
これらのコードを機能させるために、kennytm の github からプライベート ヘッダーをダウンロードし、SpringBoard.h と SBAwayController.h をインポートします。OK をコンパイルして、iPhone 4S で実行します。objc_getClass("SBAwayController "); しかし、プログラムは次の行でクラッシュしました。
SBAwayController * controller = [clsAwayController sharedAwayController];
エラー: '+[SBAwayController sharedAwayController]: 認識されないセレクターがクラス 0x1456c0 に送信されました'
これらのコードを機能させるために必要な他の作業はありますか? プライベート API を使用すると Apple から拒否される可能性があることはわかっていますが、それを機能させる方法を知りたいだけです。ご提案ありがとうございます。