Questão de tempo de fundo para o aplicativo Bluetooth LE para Iphone 4s
Eu estou usando a estrutura core-bluetooth para o meu aplicativo no iPhone-4s.
Isso normalmente tem que ser um aplicativo de segundo plano que pode ser executado o mais tempo possível.
Agora está funcionando apenas por 40 min - 1 hora no máximo.
Eu estou esperando pelo menos 1 dia ou mais.
Para este valor "bluetooth-central" é adicionado na chave "Modos de fundo necessários" no arquivo .plist.
Parece que meu aplicativo vai "suspender" o modo, no final. desde quando eu abro o aplicativo novamente (fundo para o estado de primeiro plano) ele está enviando a notificação novamente, isso significa que a conexão Bluetooth ainda está conectada e o dispositivo BLE ainda está enviando uma notificação. Se eu pressionar o botão home e o aplicativo chegar ao fundo, ele NÃO receberá notificação novamente.
Alguém pode me dizer por que meu aplicativo vive em modo de fundo apenas por no máximo 1 hora. Ele deve continuar funcionando como um aplicativo de música normal em segundo plano para sempre.
A Apple está dizendo algo específico sobre qual condição um aplicativo de segundo plano (que é um desses aplicativos em execução contínua caindo nas 5 categorias), deixando de ir para o modo de suspensão?
Referindo "iPhoneAppProgrammingGuide
", em "Communicating with a Bluetooth Accessory
"seção, eu vim a saber que, para longa execução tarefa de fundo para Bluetooth LE aplicação 2 implementações são necessárias:
1) A chave UIBackgroundModes deve ser "bluetooth-central" emInfo.plist
Arquivo. 2) Qualquer aplicativo que suporte o processamento em segundo plano de dados Bluetooth deve ser baseado em sessão.
Então, para o meu aplicativo, a primeira implementação foi incorporada, e com esse aplicativo é possível executar em segundo plano e fazer todas as tarefas para duração máxima de 1 hora.
Agora preciso implementar a segunda implementação. isto é, baseado em sessão. Que permitirá obter os eventos, mesmo se o aplicativo estiver no estado "suspender" de acordo com a documentação. Eu tentei encontrar para criar uma sessão adequada específica para Bluetooth LE (Core Bluetooth framework) como o "EASession
"presente para Bluetooth clássico (quadro de acessório externo). Mas eu não o encontrei.
Basicamente, não tenho certeza de qual classe de sessão eu preciso usar para o propósito do BLE. Para áudio / vídeo, rede e internet, acessório externo, existem classes de sessão individuais disponíveis. Não existe nenhum para o framework Core Bluetooth.
Alguém poderia me ajudar, qual classe de sessão é adequada para BLE.