我们能否使用iOS检测SIM卡是预付费还是后付费?

9

在iOS编程中,是否有任何方法、函数或属性可以识别SIM卡是预付费还是后付费的?

我们是否可以以任何方式使用网络信息来区分预付费和后付费?

- (NSDictionary *)fetchSSIDInformation { 
       NSArray *interfaceNames = CFBridgingRelease(CNCopySupportedInterfaces());
       NSLog(@"%s: Supported interfaces: %@", func, interfaceNames);
       NSDictionary *SSIDInfo; 
       for (NSString *interfaceName in interfaceNames)
          { 
            SSIDInfo = CFBridgingRelease( CNCopyCurrentNetworkInfo((bridge CFStringRef)interfaceName)); 
            NSLog(@"%s: %@ => %@", __func, interfaceName, SSIDInfo); 
            BOOL isNotEmpty = (SSIDInfo.count > 0); 
            if (isNotEmpty) { break; } 
          }

      return SSIDInfo;
}

我认为SIM卡和网络都没有任何区别。这完全是关于计费的问题,因此设备并不知道任何信息。 - Sami Kuhmonen
2个回答

1
不,SIM卡或设备可用的任何网络信息都没有订户类型的指示。 SIM卡仅持有国际移动用户识别码(IMSI),该码可将SIM卡唯一地标识给运营商。
然后,网络运营商将在其端上(存储在HLR中)关联“订户类型”(后付费,预付费,融合,混合),这将影响计费方式。
公开从HLR获取此信息通常是不会被执行的,但运营商可能会为服务提供商提供门户网站,以公开此类查询。

0

我认为你做不到,因为苹果没有公开任何关于SIM卡的信息。你可能可以尝试,但是苹果不会在App Store中考虑你的应用。请阅读苹果开发者文档


是的,我为此进行了一些研究,目前还不可能实现。只是想知道我们是否在设备网络信息中获得了相关信息。 - Rahul Verma
请添加您所使用的代码以获取此类信息。 - Saranjith
  • (NSDictionary *)fetchSSIDInformation { NSArray *interfaceNames = CFBridgingRelease(CNCopySupportedInterfaces()); NSLog(@"%s: Supported interfaces: %@", func, interfaceNames); NSDictionary *SSIDInfo; for (NSString *interfaceName in interfaceNames) { SSIDInfo = CFBridgingRelease( CNCopyCurrentNetworkInfo((__bridge CFStringRef)interfaceName)); NSLog(@"%s: %@ => %@", func, interfaceName, SSIDInfo); BOOL isNotEmpty = (SSIDInfo.count > 0); if (isNotEmpty) { break; } }
    return SSIDInfo;
}
- Rahul Verma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接