Iphone 苹果允许监控跳板比赛吗?

Iphone 苹果允许监控跳板比赛吗?,iphone,ios,ipad,core-foundation,Iphone,Ios,Ipad,Core Foundation,我试图检测用户何时锁定设备(例如,与按home按钮相比) : 我可以想象com.apple.springboard.lockstate就像调用私有API?还是这样好?假设所有的。。。功能是公开的,你可能还可以,但肯定是在一个阴暗的领域。如果苹果改变这个字符串,下一版本的iOS可能会破坏你的代码 在类似的情况下,对于一个已批准的shipping应用程序,我所做的是避免直接使用字符串。创建一个字符串数组,然后使用NSString方法将它们与句点分隔符组合,而不是直接使用com.apple.sprin

我试图检测用户何时锁定设备(例如,与按home按钮相比)

:


我可以想象com.apple.springboard.lockstate就像调用私有API?还是这样好?

假设所有的。。。功能是公开的,你可能还可以,但肯定是在一个阴暗的领域。如果苹果改变这个字符串,下一版本的iOS可能会破坏你的代码

在类似的情况下,对于一个已批准的shipping应用程序,我所做的是避免直接使用字符串。创建一个字符串数组,然后使用NSString方法将它们与句点分隔符组合,而不是直接使用com.apple.springboard.lockstate

YMMV

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), //center
                                    NULL, // observer
                                    lockStateChanged, // callback
                                    CFSTR("com.apple.springboard.lockstate"), // event name
                                    NULL, // object
                                    CFNotificationSuspensionBehaviorDeliverImmediately);



static void lockStateChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) {
    NSLog(@"event received!");
    // you might try inspecting the `userInfo` dictionary, to see
    //  if it contains any useful info
    if (userInfo != nil) {
        CFShow(userInfo);
    }
}