Ios ExternalAccessory蓝牙问题

时间:2012-10-31 19:07:13

标签: ios bluetooth external-accessory bluecove eaaccessory

我在为我的ipod运行ExternalAccessory时遇到了一些困难...

我在我的计算机上运行了一个蓝色蓝牙监听器(mac,Mountain Lion)(这里是代码:http://pastebin.com/j6Eu0H66),我已成功将我的ipod与我的计算机配对。但是,当我有我的ipod列表时:

[[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
除了蟋蟀,我什么也得不到。我假设这是因为我没有在我的info.plist中设置任何有效的配件 - 但问题是,我不知道应该输入什么!

有没有人对我为什么无法通过EAAccessoryManager找到我的电脑有任何想法,有没有人知道什么归类为有效的协议?我找不到关于什么实际写作协议的文档。

P.S。作为这个项目的早期部分,我试图通过lejos将我的计算机与我的NXT配对,但我遇到了这个问题:

https://groups.google.com/forum/?fromgroups=#!topic/bluecove-users/7jWv1V1GC-4

结果,我在第一次使用hack后贴了几条评论,并用Lion IOBluetooth.framework替换了我的Mountain Lion IOBluetooth.framework。我不确定这是否会对iOS方面产生巨大影响,但我想我应该让你们知道。

P.S.S。我用来打印附件列表的代码:注意它还没有返回任何内容,也没有使用protocolString。

我得到“Testing123”日志,但没有“设备!”日志

- (EASession *)openSessionForProtocol:(NSString *)protocolString
{


    NSLog(@"Testing123");
    NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager]
                            connectedAccessories];
    EAAccessory *accessory = nil;
    EASession *session = nil;




    for (EAAccessory *obj in accessories)
    {
        NSLog(@"Device!");
        /*
        if ([[obj protocolStrings] containsObject:protocolString])
        {
            accessory = obj;
            break;
        }
         */
    }

    return NULL;
}

此外,这是我的info.Plist的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:0)

我不知道您将iPod连接到计算机的目标是什么,但如果您只是想在iOS和计算机之间更改某些信息,那么Bonjour是一种简单而有趣的方式来完成这项工作。使用bonjour,您可以获得一些优势,例如连接到Windows PC甚至是Android设备。

如果您有/想要使用蓝牙,那将是一项艰巨的工作,因为iOS ExternalAccessory框架仅适用于符合MFi标准的配件,如@Brad Larson所说。蓝牙LE是一个选项,如果你的电脑支持它,所以你的iPod,但BLE协议只支持少量的数据传输,你将不得不剥夺你的数据小块在设备之间发送和接收,自己配对并记住配对设备等,但它是另一个问题的答案......

不幸的是,在你的情况下,我不认为bluethoot是一个不错的选择,但另一方面,你必须看看Bonjour,这也很容易使用。

希望它无论如何都有帮助。

相关问题