【问题标题】:How To Check If A User's iOS Device Supports Bluetooth Peer-To-Peer Connections如何检查用户的 iOS 设备是否支持蓝牙对等连接
【发布时间】:2011-09-26 17:11:02
【问题描述】:

以编程方式检查当前设备是否支持蓝牙对等 GameKit 连接的最佳方法是什么?我知道如何检查 Game Center 支持,但想支持具有蓝牙功能的 iOS 3 设备(我知道所有具有蓝牙功能的设备都可以升级到 iOS 4)。

编辑:该应用程序在没有蓝牙的情况下运行良好,所以我不希望peer-peer 出现在UIRequiredDeviceCapabilities 中。

非常感谢,
jrtc27

【问题讨论】:

    标签: iphone objective-c ios gamekit game-center


    【解决方案1】:

    既然我们知道哪个设备支持什么,如果你能检测到设备,你就可以让它工作。我找到了这种方法,它对我有用。你可以找到device capabilities here

    //如果设备支持 X,则返回 TRUE。

    -(BOOL)platformSupported_X
    {
    NSString *platform = [self platform];
    if ([platform isEqualToString:@"iPhone1,1"])    return FALSE;
    if ([platform isEqualToString:@"iPhone1,2"])    return FALSE;
    if ([platform isEqualToString:@"iPhone2,1"])    return TRUE;
    if ([platform isEqualToString:@"iPhone3,1"])    return TRUE;
    if ([platform isEqualToString:@"iPod1,1"])      return FALSE;
    if ([platform isEqualToString:@"iPod2,1"])      return TRUE;
    if ([platform isEqualToString:@"iPod3,1"])      return TRUE;
    if ([platform isEqualToString:@"iPod4,1"])      return TRUE;
    if ([platform isEqualToString:@"iPad1,1"])      return TRUE;
    if ([platform isEqualToString:@"i386"])         return TRUE;
    return TRUE;
    }
    

    // 检查设备型号

    -(NSString *)platform
    {
    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];
    free(machine);
    return platform;
    }
    

    【讨论】:

      【解决方案2】:

      似乎没有一种优雅的方法可以根据设备类型检测蓝牙点对点支持。您可能需要考虑基于操作系统版本进行检测(iOS 3.1 是对等网络的最低​​要求):

      NSString *reqSysVer = @"3.1";
      NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
      BOOL osSupportsBluetoothPeerToPeer = ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending);
      

      如果操作系统是3.1或更高版本,但设备不支持蓝牙点对点,系统会提示用户不支持。这似乎是苹果更喜欢的:http://support.apple.com/kb/HT3621

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-27
        • 1970-01-01
        • 1970-01-01
        • 2021-08-25
        • 2020-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多