0

ペアリングされた iPhone デバイスに現在接続しているかどうかを確認したいと考えています。定期的に(たとえば5秒)チェックする必要があります。現在、ExternalAccessory フレームワークを使用して識別していますが、実装されたコードではペアリングされた iPhone のリストが提供されません。

私が実装したコード

- (EASession *)openSessionForProtocol:(NSString *)protocolString
{
    NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager]
                            connectedAccessories];
    EAAccessory *accessory = nil;
    EASession *session = nil;

    for (EAAccessory *obj in accessories)
    {
        if ([[obj protocolStrings] containsObject:protocolString])
        {
            accessory = obj;
            break;
        }
    }

    if (accessory)
    {
        session = [[EASession alloc] initWithAccessory:accessory
                                           forProtocol:protocolString];
        if (session)
        {
            [[session inputStream] setDelegate:self];
            [[session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop]
                                             forMode:NSDefaultRunLoopMode];
            [[session inputStream] open];
            [[session outputStream] setDelegate:self];
            [[session outputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop]
                                              forMode:NSDefaultRunLoopMode];
            [[session outputStream] open];
        }
    }

    return session;
}

NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories]; 0 台のデバイスが返されます。このメソッドがペアリングされた Bluetooth デバイスを返すかどうか心配です。

私の要件 上記のように、ペアリングされた iPhone デバイスに現在接続されているかどうかを確認したいと考えています。要件を実装するための代替案を提案できます。前もって感謝します。

4

1 に答える 1

-1

iOS デバイスは、 CoreBluetooth フレームワークを使用してアクセスされるBluetooth 4.0 ( BLE ) を使用して相互にペアリングします。Apple のドキュメントはこのテクノロジに非常に適していて、接続プロセスをセントラル デバイスまたはペリフェラル デバイスとして説明しています。

一方、外部アクセサリは、Bluetooth 2.0 などの古いバージョンの Bluetooth を使用するデバイスと通信するために使用されます。これは古いフレームワークであり、克服するのが難しいエラーが発生しやすくなっています。また、BLE を使用するアプリを提出するのは簡単ですが、Apple はデバイスのバッテリー消費のために古いバージョンの Bluetooth を使用するアプリには非常に慎重です (したがって、BLE (Bluetooth Low Energy) の LE (Low Energy) 部分)。

Apple のドキュメントで Core Bluetooth を使用すると、接続されている iOS デバイスを識別して通信することが非常に簡単になります。

于 2015-05-18T14:10:09.950 に答える