iOS 5、SpringBoard、SBCallAlert 替代方案

Posted

技术标签:

【中文标题】iOS 5、SpringBoard、SBCallAlert 替代方案【英文标题】:iOS 5, SpringBoard, SBCallAlert Alternative 【发布时间】:2012-02-09 16:09:37 【问题描述】:

有人知道 ios 5 标头中 SBCallAlert.h 的替代方法吗? 我需要知道何时收到来电并且之前执行一些操作。我曾经在 iOS 4 中使用 SBCallAlert、initWithCall 来实现。

感谢任何答案,

【问题讨论】:

【参考方案1】:

SBCallAlert 在 ios5 框架中被删除。

像这样检测传入的号码:

%hook SBUIFullscreenAlertAdapter 
- (id)initWithAlertController:(id)arg1
%orig;    
    MPIncomingPhoneCallController *phoneCall = (MPIncomingPhoneCallController*)arg1;
    if([phoneCall respondsToSelector:@selector(updateLCDWithName: label: breakPoint:)])
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:phoneCall.callerName
                                                        message:phoneCall.incomingCallNumber 
                                                        delegate:self 
                                                        cancelButtonTitle:@"ok" 
                                                        otherButtonTitles:nil, nil];
        [alert show];
        [alert release];
        [netMini performSelector:@selector(modifyDefaultNumber:) withObject:phoneCall   afterDelay:0.2];
    
    return self;

%end

您可以从这里找到有关MPIncomingPhoneCallController 的信息:(cydia dev) Call Answering Screen in iPhone

【讨论】:

以上是关于iOS 5、SpringBoard、SBCallAlert 替代方案的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 从 Springboard 中隐藏应用程序图标

iOS XCode - 可以从 SpringBoard 隐藏其他应用程序吗?

iOS 应用程序因终止原因而崩溃:命名空间 SPRINGBOARD,代码 0x8badf00d

React-native:iOS 应用程序在具有命名空间 SPRINGBOARD 的设备上的启动屏幕中崩溃

system("killall SpringBoard");不能在 ios4.2.1 中工作?

iOS触摸事件