2

iPhone 4s のネットワーク タイプ (GSM/CDMA) を特定することはできますか? iPhone 4s のネットワーク タイプ (GSM/CDMA) を判別する方法はありますか? 可能であれば、GSM/WCDMA と CDMA を区別したいと考えています。次のコードを使用して検出します。

    size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithUTF8String:machine];
if ([platform isEqualToString:@"iPhone4,1"])    return @"iPhone 4S";
if ([platform isEqualToString:@"iPhone4,3"])    return @"iPhone 4S coma";

しかし、coma と wcdma の iphone4s でテストしました。どちらも iPhone4,1 を返します。見分けがつきません。

4

1 に答える 1

0

指標として使用されているキャリアを使用できます。

NSString* networkType = nil;

// Setup the Network Info and create a CTCarrier object
// first check to ensure the developper linked the CoreTelephony framework
Class telephonyClass = NSClassFromString(@"CTTelephonyNetworkInfo");
if ( nil != telephonyClass ) {
    CTTelephonyNetworkInfo *networkInfo = [[[telephonyClass alloc] init] autorelease];

    if ( nil != networkInfo ) {
       // Get mobile network code
        NSString *mnc = [carrier mobileNetworkCode];
        if (mnc != nil) {   
             // set networkType based on carrier name
             // carrier name to network type mapping left as an exercise for the reader
             //
        }
    }
}
于 2012-07-10T15:44:06.533 に答える