Получите MAC-адрес устройства Bluetooth с помощью Apple «Внешние аксессуары» - PullRequest
4 голосов
/ 24 февраля 2012

У меня есть устройство Bluetooth, совместимое с Apple.

Теперь я пытаюсь получить MAC-адрес этого устройства в приложении.Можно ли получить MAC-адрес устройства Bluetooth с помощью Apples "External Accessory framework"?

Я слышал, что невозможно получить MAC-адрес обычным способом, но я не понимаю«Внешняя структура аксессуаров» достаточно хороша, чтобы решить, возможно ли с этой платформой или нет.

Ответы [ 3 ]

5 голосов
/ 03 июля 2015

Нет, вы не можете получить MAC-адрес EAAccessory.Я имею в виду, вы можете использовать команду ниже:

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"
  )
}

Или их сочетание, например (номер модели + firmwareRevision) и т. д.

PS: Я знаю, что с информацией выше выЯ не знаю разницу между двумя идентичными устройствами, но в зависимости от того, какое приложение вы разрабатываете, это все равно не имеет значения.

Надеюсь, это поможет.

1 голос
/ 01 марта 2013

Попробуйте:

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

, но я заметил, что это работает только с новейшими устройствами.(Аксессуар iPad 1 не совместим по значению ключа для macAddress)

Просмотрите весь словарь аксессуаров для получения дополнительных ключей:

NSLog(@"%@", accessory);
0 голосов
/ 13 марта 2012

Короткий ответ - нет, вы не можете этого сделать.

Причина в том, что все, что делает среда External Accessory, - это настройка потоков ввода и вывода данных с устройством. Если вы хотите получить MAC-адрес от аппаратного обеспечения, аппаратное обеспечение должно предоставить эту информацию с помощью любого механизма связи, который они создали для своих устройств и соответствующего программного обеспечения iOS.

...