gpt4 book ai didi

iphone - 锁定解锁事件iphone

转载 作者:IT王子 更新时间:2023-10-29 07:44:09 26 4
gpt4 key购买 nike

如何检测 iPhone 上的锁定/解锁事件?假设它只适用于越狱设备,你能告诉我正确的 API 吗?

锁定事件,我的意思是显示或隐藏锁定屏幕(可能需要密码才能解锁,也可能不需要)。

最佳答案

您可以使用 Darwin notifications , 来监听事件。根据我在越狱的 iOS 5.0.1 iPhone 4 上的测试,我认为这些事件之一可能是您需要的:

com.apple.springboard.lockstate
com.apple.springboard.lockcomplete

注:根据楼主的comments to a similar question I answered here ,这也适用于未越狱的手机。

要使用它,像这样注册事件(这只注册上面的第一个事件,但你也可以为 lockcomplete 添加一个观察者):

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

lockStateChanged 是您的事件回调:

static void lockStateChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) {
NSLog(@"event received!");
if (observer != NULL) {
MyClass *this = (MyClass*)observer;
}

// you might try inspecting the `userInfo` dictionary, to see
// if it contains any useful info
if (userInfo != nil) {
CFShow(userInfo);
}
}

lockstate 事件在设备被锁定 解锁时发生,但lockcomplete 事件仅在设备锁定时触发。另一种确定事件是锁定事件还是解锁事件的方法是使用 notify_get_state()。您将获得锁定与解锁的不同值,as described here .

关于iphone - 锁定解锁事件iphone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/706344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com