Я использовал платформу CoreTelephony, представленную в iOS SDK 4.0, чтобы узнать о входящем вызове и его состоянии сброса.
CTTelephonyNetworkInfo *tni = [[CTTelephonyNetworkInfo alloc] init];
callCenter = [[CTCallCenter alloc] init];
crtCarrierName = tni.subscriberCellularProvider.carrierName;
[callCenter setCallEventHandler:^(CTCall *call) {
if ([[call callState] isEqual:CTCallStateConnected]) {
//this call has just connected
} else if ([[call callState] isEqual:CTCallStateDisconnected]) {
//this call has just ended (dropped/hung up/etc)
}
}];
Могу ли я использовать этот обработчик событий для отслеживания состояния вызова, когда мое приложение работает в фоновом режиме? Могу ли я также получить номер телефона для входящего звонка из объекта CTCall? или есть другой способ.
Я не хочу использовать Private API. Доступен ли способ из Apple iOS SDK?