4

Appleと互換性のあるBluetoothデバイスを持っています。

今、私はアプリ内でそのデバイスのMACアドレスを取得しようとしています。Appleの「外部アクセサリフレームワーク」を使用してBluetoothデバイスのMACアドレスを取得することは可能ですか?

通常の方法でMACアドレスを取得することはできないと聞きましたが、このフレームワークで可能かどうかを判断するのに十分な「外部アクセサリフレームワーク」を理解していません。

4

3 に答える 3

5

EAAccessoryいいえ、の MAC アドレスを取得できません。つまり、以下のコマンドを使用できます。

NSString *macAddress = [accessory valueForKey:@"macAddress"];

しかし、 EAAccessory ドキュメントでわかるように、文書化されていません。Apple がアプリを拒否するか、この機能が次の iOS アップデートで機能しなくなる可能性があります。

特定のモデルのデバイスでカスタム アクションを作成しようとしているだけの場合、ほとんどの場合、利用可能な情報のいずれかを使用できます。

<EAAccessory: 0x17445c180> {
  connected:YES
  connectionID:29354791
  name: 23HG YKL CXN
  manufacturer: MANUFACTURER NAME
  modelNumber: 878253-222
  serialNumber: //not always available
  firmwareRevision: 1.0.0
  hardwareRevision: 1.0.0
  protocols: (
    "com.some.protocol",
    "com.some.other.protocol"
  )
}

または、(modelNumber + firmwareRevision) などの組み合わせ。

PS:上記の情報では、2 つの同一のデバイスの違いがわからないことはわかっていますが、開発しているアプリの種類によっては、いずれにしても問題ありません。

それが役に立てば幸い。

于 2015-07-03T02:35:38.933 に答える
1

これを試して:

NSString *macAddress = [accessory valueForKey: @"macAddress"];

しかし、これは最新のデバイスでのみ機能することに気付きました。(iPad 1 のアクセサリは、キー「macAddress」のキー値コーディングに対応していません)

その他のキーについては、アクセサリ ディクショナリ全体を参照してください。

NSLog(@"%@", accessory);
于 2013-03-01T16:47:30.693 に答える
0

短い答えはノーです。それはできません。

その理由は、外部アクセサリ フレームワークが行うのは、デバイスで入力および出力データ ストリームをセットアップすることだけだからです。ハードウェアから MAC アドレスを取得する場合、ハードウェアは、デバイスと関連する iOS ソフトウェア用に作成した通信メカニズムを介してその情報を提供する必要があります。

于 2012-03-13T16:37:19.480 に答える