我正在开发一个针对iOS的个人调整。我想在手机显示任何内容之前断开/连接电话。我正在挂接到
以下是我的代码:
错误提示为:“使用未声明的标识符'_incomingCall'”。如何解决这个问题?在hook方法时有没有办法使用私有实例变量?有没有一个函数可以返回来电的
SBUIFullscreenAlertAdapter
类的initWithAlertController:
方法。当我只显示一个消息,显示来电号码及其名称时,一切都正常,但是当我尝试以编程方式回答电话或断开电话时,它会崩溃并进入安全模式。以下是我的代码:
@interface SBUIFullscreenAlertAdapter
- (id)initWithAlertController:(id)arg1;
@end
@interface MPIncomingPhoneCallController
{
struct __CTCall *_incomingCall;
}
- (id) incomingCallNumber;
- (void)stopRingingOrVibrating;
- (void)answerCall:(struct __CTCall *)arg1;
@end
%hook SBUIFullscreenAlertAdapter
- (id)initWithAlertController:(id)arg1
{
MPIncomingPhoneCallController *phoneCall = (MPIncomingPhoneCallController*)arg1;
[phoneCall stopRingingOrVibrating];
if([phoneCall.incomingCallNumber isEqualToString:@"+98.........."]) {
[phoneCall answerCall:_incomingCall];
}
%orig;
return self;
}
%end
错误提示为:“使用未声明的标识符'_incomingCall'”。如何解决这个问题?在hook方法时有没有办法使用私有实例变量?有没有一个函数可以返回来电的
CTCallRef*
?还有其他方法可以实现这个功能吗?很明显,我正在为越狱的iOS设备编写代码,因此使用私有框架没有问题。
MSHookMessageEx
函数有一个错误。它只有4个参数,所以末尾的NULL
是不需要的。顺便问一下,您知道如何在电话通信时禁用锁屏中显示的名称以及如何禁用呼叫栏吗? - Hamed