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

| 我想知道决定我的设备是3G还是GPRS / 4G网络的方法。尤其是是否使用3G连接? 有什么办法可以通过编程吗? 另外,我想以编程方式启用和禁用3G吗? 即使建议使用私有API也可以。     
已邀请:
好吧,我可以回答问题的第一部分。 iOS开发人员库中有示例-可达性 看一下Reachability.m,它指示您是否有连接以及连接的类型。     
如果您不介意使用私有API(如果您想在AppStore上出售它,Apple将拒绝使用),则可以使用下面的代码。但是,它在网络更改方面几乎没有不稳定。
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);
    

要回复问题请先登录注册