Comunicação entre iOS e Android com Bluetooth LE

Eu tenho um aplicativo de trabalho usando CoreBluetooth para se comunicar entre um iPad (central) e iPhone (periférico). Eu tenho um serviço que tem duas características. Eu tenho um Nexus 7 executando o mais recente Android 4.3 com suporte a BTLE. O Android está um pouco atrasado para entrar na onda do BTLE, mas parece que eles estão se aproximando da mesma forma que o iOS, onde inicialmente eles só suportam atuar como central, com o modo periférico chegando em uma versão posterior. Eu posso carregar o aplicativo Android BTLE de amostra e procurar por periféricos próximos. Com meu anúncio do iPhone como periférico, posso ver o valor de CBAdvertisementDataLocalNameKey na lista de periféricos próximos no lado do Android. Eu posso conectar ao iPhone e o símbolo Bluetooth muda de cinza claro para preto quando a conexão é feita. A conexão sempre dura exatamente 10 segundos e, em seguida, desconecta. No lado do Android, devo ver uma lista de serviços e características disponíveis imediatamente após a conexão. Eu provei que o código do Android está configurado corretamente porque eu posso conectá-lo ao hardware TI CC2541DK-SENSOR que eu tenho e todos os serviços e características são listados ao se conectar a ele.

Passei os últimos dias resolvendo o problema sem sucesso. O problema é que não consigo determinar qual dispositivo está apresentando um erro e, portanto, causando a desconexão. Não há retornos de chamada de CBPeripheralManagerDelegate durante a fase de conexão ou fase de descoberta de serviço, portanto, não tenho ideia de quando ocorre um erro (se o erro estiver no lado do iOS). No lado do Android, um método é chamado para iniciar a descoberta de serviço, mas seu retorno de chamada "onServicesDiscovered" nunca é chamado, o que é desconcertante. Existe alguma maneira que eu possa cavar as entranhas da comunicação BTLE no lado do iOS para ver o que está acontecendo e determinar qual erro está ocorrendo?

questionAnswers(6)

yourAnswerToTheQuestion