如何获取有关电话呼叫的信息



我必须开发一个移动应用程序来监控有关呼叫的一些信息,以限制公司用户花费太多时间将手机放在耳朵附近。x分钟后,应建议使用耳机。

第一个问题:是否可以像这样监控数据?电话通话持续时间,开始和结束,如果使用耳机,内置或外部扬声器。我的意思是,不使用越狱或其他黑客攻击。

第二个问题:是否可以在IOS和Android上做到这一点?

3rt问题:你知道Ionic是否有这个能力吗?

谢谢。

回答您的问题:

问题1:是的,在安卓上是可能的。这在 iOS 上是不可能的。在 Android 中,如果用户允许,您可以获取通话信息。你不需要越狱或其他什么。而在iOS中,您无法访问通话信息。

问题2:希望我的第一个答案本身能回答这个问题。

问题3:AFAIK离子框架仅提供电话呼叫持续时间和联系人框架的基本详细信息。您应该在Android上探索更多内容以找出答案。即使您使用离子框架,您也无法在iPhone上访问此信息,因为本机ios仅不提供这些详细信息,我们不能期望从ionic框架中获得此信息。

对于安卓:

  • 您可以轻松获取通话记录或来电和去电时间。 所以在安卓中是可能的。

对于 iOS:

根据您的问题,您想限制他们耳朵附近的手机的当前通话时间。

所以你也可以通过一些聪明在iOS中做到这一点。

  • 在iOS 10中引入了一个新的调用框架,即CallKit。
  • 首先,您必须获得应用程序中的所有联系人。
  • 因此,用户应从您的应用调用。
  • 对于拨号,还要添加自定义电话拨号器。

通过调用套件的某种方法,您可以执行以下操作:

  1. 添加呼叫观察器

    @property ( 非原子 ( CXCallObserver *callObserver;

  2. 初始化调用观察器:

    • (实例类型(初始化 { 自我 = [超级初始化]; 如果(自我({

      //Initialize the call observer
      _callObserver = [CXCallObserver new];
      [_callObserver setDelegate:self queue:dispatch_get_main_queue()];
      }
      return self;
      

      }

添加呼叫工具包的委托

#pragma mark - CXCallObserverDelegate
- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call{
[self callStateValue:call];
}
#pragma mark - Callkit State
- (void)callStateValue:(CXCall *)call {
NSLog(@"Call UIID: %@", call.UUID);
NSLog(@"hasEnded     %@", call.hasEnded? @"YES":@"NO");
NSLog(@"isOutgoing   %@", call.isOutgoing? @"YES":@"NO");
NSLog(@"isOnHold     %@", call.isOnHold? @"YES":@"NO");
NSLog(@"hasConnected %@", call.hasConnected? @"YES":@"NO");
if (call == nil || call.hasEnded == YES) {
NSLog(@"CXCallState : Disconnected");
[timer1 invalidate];
NSLog(@"%ld",(long)self.duration);
if(self.duration>1)
self.duration=1;
}
if (call.isOutgoing == YES && call.hasConnected == NO) {
}
if (call.isOutgoing == NO  && call.hasConnected == NO && call.hasEnded == NO && call != nil) {
self.duration = 0;
NSLog(@"CXCallState : Incoming");
NSLog(@"Call Details: %@",call);
}
if (call.hasConnected == YES && call.hasEnded == NO) {
NSLog(@"CXCallState : Connected");
timer1 = [NSTimer scheduledTimerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) {
self.duration++;
NSLog(@"%ld",(long)self.duration);
}];
}
}

您可以获取持续时间,还可以添加条件 x 分钟后,应该建议使用耳机。

相关内容

  • 没有找到相关文章

最新更新