Ligar automaticamente ao dispositivo bluetooth emparelhado quando estiver ao alcance
Objectivo:
Estou a tentar fazer com que o meu serviço android se auto-ligue a um já dispositivo bluetooth emparelhado quando está ao alcance.
Exemplo:
Tenho o meu iphone ligado ao meu carro. Quando me sento no meu carro música começa a tocar automaticamente. Não preciso de o ligar outra vez. I não precisas de começar uma canção. Apenas lança o itunes e começa a tocar musica. Quero este tipo de conectividade no meu Andróide. aplicacao.
uma solução óbvia é ter um tópico a correr num serviço de fundo que tenta ligar-se a cada X segundos. Isto, no entanto, não é ideal devido ao número de vítimas na vida útil da bateria.
Tentei configurar os receptores de transmissão para serem accionados no dispositivo, mas isto só parece ser chamado depois de me ligar ao dispositivo. Não há maneira do meu aplicativo receber uma notificação quando o telefone entra no alcance do dispositivo? Gastei a melhor parte do último dois dias a tentar fazer isto funcionar sem sorte. Há um bilhão de tutoriais sobre como se conectar a um dispositivo bt, mas nenhum para se conectar automaticamente quando em alcance. Começo a questionar se isto é possível.. Se não for ...questões conexas:
procurar os dispositivos bluetooth já emparelhados automaticamente, quando estiverem ao alcance
2 answers
No entanto, se o seu dispositivo (tanto o telefone como o periférico) suportar Bluetooth 4.0 (LE), bem como o GATT, poderá usar o método connectGatt que irá ligar-se automaticamente assim que o dispositivo se torna disponível (mais uma vez, não muito certo sobre as implicações da bateria, embora testes limitados que eu tenho feito até agora mostra que não é significativo).
Não sei bem qual é o comportamento do dispositivo quando não é do GATT, mas talvez valha a pena investigar.GATT_FAILURE
quando o dispositivo se torna ao alcance, mas não apoia o GATT (isto dar-lhe-ia pelo menos uma indicação de quando se ligar).
Se encontrar uma solução ou investigar o comportamento deste método em dispositivos não-LE / não-GATT, por favor actualize a sua pergunta, pois eu teria muita curiosidade em saber mais sobre ele.
- Drenar a bateria não é uma preocupação. (O rádio funciona de uma bateria de carro, e na maioria das vezes Está ligado, o motor está funcionando e a bateria é carregada.)
A periférica fala com apenas um telefone de cada vez, e assim pode suspender suas varreduras enquanto está conectada a um. (Este rádio em particular só pode lidar com um telefone de cada vez.)
- o periférico é praticamente inútil quando não está ligado a outro dispositivo, e pode assim, espera-se que esteja ligado a algo durante a maior parte do Tempo em que é ligado. (Isto vale para auscultadores, teclados, ratos e coisas assim.)