【发布时间】:2014-08-24 06:07:02
【问题描述】:
我不想以编程方式打开/关闭 iPhone 的呼叫等待功能(可以在 Settings > Phone > Call Waiting 找到)。
我发现手机设置从PhoneSettingsCallWaitingController 类找到here 调用-setCallWaitingEnabled:specifier: 方法。我在/System/Library/PreferenceBundles/MobilePhoneSettings.bundle/Call Waiting.plist找到它:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>id</key>
<string>com.apple.preferences.phone.call-waiting</string>
<key>items</key>
<array>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
</dict>
<dict>
<key>cell</key>
<string>PSSwitchCell</string>
<key>get</key>
<string>callWaitingEnabled:</string>
<key>label</key>
<string>Call Waiting</string>
<key>set</key>
<string>setCallWaitingEnabled:specifier:</string>
</dict>
</array>
<key>title</key>
<string>Call Waiting</string>
</dict>
</plist>
我手动加载了包并初始化了上面的类并调用了我说的方法,但没有任何反应。代码如下:
NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PreferenceBundles/MobilePhoneSettings.bundle"];
BOOL success = [b load];
if (success)
{
NSLog(@"\n\n\n\n Bundle load successfull! \n\n\n\n ");
Class PhoneSettingsCallWaitingController = NSClassFromString(@"PhoneSettingsCallWaitingController");
id tc = [[PhoneSettingsCallWaitingController alloc] init];
[tc setCallWaitingEnabled:0 specifier:0];
} else NSLog(@"\n\n\n\n Bundle load failure! \n\n\n\n ");
我不知道我是否走在正确的道路上。还有其他方法可以打开/关闭呼叫等待设置吗?
【问题讨论】:
-
这看起来像一个 UI 控制器,由从网络获取的数据驱动。要禁用呼叫等待,您需要使用 SS 代码。完整的代码列表位于:etsi.org/deliver/etsi_ts/122000_122099/122030/10.00.00_60/…
-
@Petesh 感谢您的回答。我找不到任何关于运行 SS 代码的信息。你知道怎么做吗?
-
不知道,可能是通过调制解调器接口。
标签: ios iphone jailbreak cydia-substrate