如何以编程方式获取iPhone是否使用3G,4G或GPRS连接?有没有办法以编程方式启用和禁用3G连接?



我想知道如何决定我的设备是在3G还是GPRS/4G网络上。特别是它是否使用3G连接?有什么方法可以通过编程来实现吗?

另外,我想以编程方式启用和禁用3G ?

我可以回答问题的第一部分。

有一个示例在iOS开发者库-可达性看看的可达性。m表示是否有连接以及连接的类型

如果你不介意使用私有api(如果你想在AppStore上销售,苹果会拒绝这种做法),你可以使用下面的代码。但对网络变化不稳定

void *libHandle=dlopen("/System/Library/PrivateFrameworks/SoftwareUpdateServices.framework/SoftwareUpdateServices",RTLD_LAZY);
Class SUNetworkMonitor = NSClassFromString(@"SUNetworkMonitor");
NSObject *networkMonitor=[SUNetworkMonitor sharedInstance];
// check if the class have the method currentNetworkType
if ( [networkMonitor respondsToSelector:@selector(currentNetworkType)] )
{
    int t = (int)[networkMonitor performSelector:@selector(currentNetworkType)];
    NSString *type = @"";
    switch ( t ) {
        case 0:  type = @"NO-DATA"; break;
        case 1:  type = @"WIFI"; break;
        case 2:  type = @"GPRS/EDGE"; break;
        case 3:  type = @"3G"; break;
        default: type = @"OTHERS"; break;
    }
    NSLog(@"Network type: %@", type);
}
dlclose(libHandle);

相关内容

  • 没有找到相关文章

最新更新