作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试检测用户何时锁定设备(与按下主页按钮相比)。
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);
}
}
我可以想象 com.apple.springboard.lockstate 就像调用私有(private) API 一样?或者这样可以吗?
最佳答案
假设所有 CF... 函数都是公开的,您可能没问题,但肯定是在一个模糊的区域。如果 Apple 更改该字符串,下一版本的 iOS 可能会破坏您的代码。
我在类似情况下对已批准的运输应用程序所做的是避免直接使用该字符串。创建一个字符串数组,然后使用 NSString 方法将它们与句点分隔符组合起来,而不是直接使用 com.apple.springboard.lockstate。
YMMV
关于iphone - Apple 是否允许监控跳板事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634533/
我使用 Nativescript,我的应用程序因以下问题多次被 Apple 拒绝。有人可以帮帮我吗。 Your app uses or references the following non-pub
问题 发送发布应用程序版本的静默通知显示下一个日志: SpringBoard[48] : High Priority Push: [Bundle ID] - BAR Disabled 有什么想法吗?酒
我是一名优秀的程序员,十分优秀!