Como enviar ping usando o cliente Eclipse Paho MQTT?

Acabamos de começar a criar nosso próprio sistema de notificação por push (devido à necessidade do cliente) para Android e encontramos o Eclipse Paho (http://www.eclipse.org/paho/). Escusado será dizer que este projeto é realmente emocionante.

O problema com o Android é, se a CPU estiver em estado de suspensão, o cliente MQTT pode não ter a chance de enviar o ping em seu intervalo definido. A solução alternativa é usar o AlarmManager para reativá-lo e executar o trabalho. A documentação do Android diz:

O Gerenciador de alarmes mantém um bloqueio de ativação da CPU desde que o método onReceive () do receptor de alarme esteja sendo executado. Isso garante que o telefone não irá dormir até que você tenha terminado de lidar com a transmissão. Quando onReceive () retorna, o Gerenciador de alarmes libera esse recurso. Isso significa que o telefone, em alguns casos, irá dormir assim que seu método onReceive () for concluído.

http://developer.android.com/reference/android/app/AlarmManager.html

Eu preciso ter certeza de que eu poderia enviar o comando ping dentro desse método onReceive () enquanto a CPU tem PARTIAL_WAKE_LOCK, então eu estava pesquisando uma maneira de enviar ping manualmente para o servidor, mas parece que o cliente não expõe nenhum desses métodos. Estou esquecendo de algo? Ou, qual é a solução alternativa aqui, exceto publicar minha própria "mensagem ping"? Eu quero evitar isso por causa de:

Sobrecarga maiorGarantiremos que os clientes Android sejam apenas assinantes, podem estar com a ACL da Mosquitto. Eles não poderão publicar mensagens.

questionAnswers(4)

yourAnswerToTheQuestion