-8

谁能告诉我如何找出拨出电话的最后通话费用和拨出电话号码的运营商名称?是否有用于获取 iPhone 中运营商名称和通话费用详细信息的 API?

4

2 回答 2

2

它甚至与机密性或安全性无关,尽管如果此信息可用,这将是一个严重的安全问题。

电话不了解与无线/蜂窝网络中的计费有关的任何内容。手机只是尝试在网络上注册,但如果帐户处于非活动状态或信誉不佳,网络通常会拒绝注册尝试。

计费几乎由运营商的核心网络处理(通常是电路交换网络中的 MSC、UMTS 分组交换网络中的 SGSN、CDMA/EVDO 分组交换网络中的 PDSN 或 LTE 分组交换网络中的 MME),所以无法获得有关剩余通话时间或与电话或数据传输相关的费用的任何信息。任何提供此信息的应用程序通常通过对其进行近似来实现。通常它只是在电话级别跟踪此信息,并且可能不是官方的。

运营商名称可能可用,具体取决于提供商和技术。在大多数技术中,网络的 MCC 和 MNC 将可用,您可以访问该运营商名称。此链接让您了解如何为 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);
于 2012-12-11T15:47:37.203 回答
0

不,没有。不,不应该。不,不可能。那东西是保密的。

于 2012-12-11T14:44:46.913 回答