iOS - 检测短信/通话通知(非越狱设备)

时间:2014-03-19 15:49:55

标签: ios

我正在研究一个概念,我在appstore中不需要它。我一直在寻找方法。找到这个答案,说它已在iOS 4,5,6中完成。请查看以下链接。

Is there any private api for iphone that detect sms sent or received

示例代码使用C,C ++,并且在Objective-C方面没什么意义。有没有其他方法可以从应用程序中检测到呼叫/消息通知?任何数量的帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

CoreTelephony是一个CoreFoundation框架,换句话说它是一个C / C ++ API。此外,它几乎没有记录的功能,基本上你最终可以发现一个电话(而不是SMS)被处理。几乎可以肯定通过API提供额外的私人信息,但它不会被广泛记录。可以找到已发布的Apple文档here。使用除了文档之外的任何功能不仅会阻止您将应用程序放在商店中,而且很可能会在(不太遥远)的未来中破坏应用程序。

答案 1 :(得分:1)

找到检测呼叫here的解决方案。当app在前台时,问题中的解决方案有效。注意:问题的答案对我不起作用。

在AppDelegate.h文件中

@property (weak, nonatomic) CTCallCenter* callCenter; 
AppDelegate.m中的

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ 
        self.callCenter = [[CTCallCenter alloc] init];
         [self.callCenter setCallEventHandler:^(CTCall *call)
      {
             NSLog(@"Event handler called");
         if ([call.callState isEqualToString: CTCallStateConnected])
         {
             NSLog(@"Connected");
         }
         else if ([call.callState isEqualToString: CTCallStateDialing])
         {
             NSLog(@"Dialing");
         }
         else if ([call.callState isEqualToString: CTCallStateDisconnected])
         {
             NSLog(@"Disconnected");

         } else if ([call.callState isEqualToString: CTCallStateIncoming])
         {
             NSLog(@"Incomming");
         }
     }];  

return YES;

}