3

我正在创建一个即使 iPhone 屏幕被锁定也必须显示 CFUserNotificationDisplayAlert 的应用程序,目前我正在使用此代码

CFOptionFlags responseFlags = 0;
CFUserNotificationDisplayAlert(20.0, 3, NULL, NULL, NULL, CFSTR("Hello"), CFSTR("Hello World"), CFSTR("OK"), NULL, NULL, &responseFlags);

这在主屏幕上效果很好,但如果屏幕锁定则不会弹出。还有什么我必须添加到它以使其也出现在锁定屏幕上的吗?

4

2 回答 2

4

您需要使用kCFUserNotificationAlertTopMostKey密钥。

extern CFStringRef kCFUserNotificationAlertTopMostKey;
CFStringRef keys[] = {
   kCFUserNotificationAlertTopMostKey,
   kCFUserNotificationAlertHeaderKey,
   kCFUserNotificationAlertMessageKey
};
CFStringRef values[] = {
   kCFBooleanTrue,
   CFSTR("Title"),
   CFSTR("Message")
};
CFDictionaryRef dict = CFDictionaryCreate(NULL, keys, values,     
                                          sizeof(keys)/sizeof(*keys),
                                          &kCFTypeDictionaryKeyCallBacks,
                                          &kCFTypeDictionaryValueCallBacks);
SInt32 err = 0;
CFUserNotificationRef notif = CFUserNotificationCreate(NULL,
          0, kCFUserNotificationPlainAlertLevel, &err, dict);
CFRelease(dict);
...

有关 iPhone OS ≤ 3.1 的所有对话框描述键,请参阅http://iphonedevwiki.net/index.php/CFUserNotification

(请注意,虽然它会显示在锁定屏幕上,但手机不会自行唤醒。)

于 2010-03-14T07:26:34.387 回答
2

CFUserNotificationiPhone 操作系统不支持。推送通知相当于 iPhone。

于 2010-03-08T04:46:21.597 回答