2012-12-11 6 views
-7

Может ли кто-нибудь рассказать мне, как узнать последнюю плату за исходящий звонок и имя оператора исходящего звонка? Есть ли API для получения информации о названии оператора и стоимости вызова в iPhone?IOS. Как определить номер телефона для звонков и последнюю стоимость звонка для исходящего звонка в iPhone.

+0

Я никогда не делал программирования iPhone, так возьмите его с зерном соли, но я подозреваю, что многое из информация о платежах операторов не будет доступна по соображениям безопасности. – Mike

ответ

0

Нет, нет. Нет, не должно быть. Нет, не может быть. Это секрет.

2

Это даже не о конфиденциальности или безопасности, хотя, если бы эта информация была доступна, это было бы серьезной проблемой безопасности.

Телефон не понимает ничего, связанного с выставлением счетов в беспроводной/сотовой сети. Телефон просто пытается зарегистрироваться в сети, но если учетная запись неактивна или не находится в хорошем состоянии, сеть обычно отказывается от попытки регистрации.

Биллинг в значительной степени обрабатывается базовой сетью оператора (обычно это MSC в сети с коммутацией каналов, SGSN в сети с коммутацией пакетов UMTS, PDSN в сети с коммутацией пакетов CDMA/EVDO или MME в коммутаторе LTE с коммутацией пакетов сеть), поэтому невозможно получить информацию о оставшихся минутах или расходах, связанных с телефонным звонком или передачами данных. Любое приложение, которое предоставляет эту информацию, обычно делает это, приближая его. Обычно он просто отслеживает эту информацию на уровне телефона и, возможно, не является официальным.

Имя перевозчика может быть доступно в зависимости от поставщика и технологии. В большинстве технологий MCC & MNC сети будет доступен, и вы можете получить доступ к этому названию. Это link дает представление о том, как сделать это для iOS4, но короткая версия:

#import <CoreTelephony/CTCarrier.h> 
#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

// Setup the Network Info and create a CTCarrier object 
CTTelephonyNetworkInfo *networkInfo = [[[CTTelephonyNetworkInfo alloc] init] autorelease]; 
CTCarrier *carrier = [networkInfo subscriberCellularProvider]; 

// Get carrier name 
NSString *carrierName = [carrier carrierName]; 
if (carrierName != nil) 
    NSLog(@"Carrier: %@", carrierName); 

// Get mobile country code 
NSString *mcc = [carrier mobileCountryCode]; 
if (mcc != nil) 
    NSLog(@"Mobile Country Code (MCC): %@", mcc); 

// Get mobile network code 
NSString *mnc = [carrier mobileNetworkCode]; 
if (mnc != nil) 
    NSLog(@"Mobile Network Code (MNC): %@", mnc); 
Смежные вопросы