Я пытаюсь создать приложение, использующее новый Bluetooth Low Energy API для Android. Для этого я начал с образца BLE, поставляемого с уровнем API 18 .
Когда я прочитал, что Android не может выступать в качестве периферийного устройства, я перевел телефон Android в центральный режим, сканируя устройства BLE вокруг него. Для этого я провел несколько тестов на платформе Nordic, имитирующей датчик сердца. Все работает идеально!
После этого я пытаюсь выбрать iPhone (iOS 7 beta 4) и установить его периферийным способом, имитируя датчик сердечного ритма, как в предыдущем тестировании. Приложение Android может видеть устройство и подключаться к нему. Но после того, как соединение будет активным, 2 устройства отключаются друг от друга через 3-4 секунды. В дополнение к этому, когда я вызываю discoverServices () на стороне Android, обратный вызов не запускается! В некоторых случаях устройство Android получает событие «Подключено», даже если микросхема Bluetooth iOS отключена. Это очень странно. Чтобы доказать это, я перевел Nordic Board в центральный режим, и мне удалось без проблем подключиться к устройству iOS.
Что бы это могло быть? Есть некоторые ограничения на Android или iOS, которые не позволяют подключаться с Android к iOS или наоборот?
Благодарю.
РЕДАКТИРОВАТЬ: после некоторого жесткого тестирования я поднял проблему на странице AOSP. Это можно проверить здесь