Estou procurando escrever um aplicativo que receba alertas enviados de um servidor. Encontrei alguns métodos para fazer isso.
- SMS - intercepte o SMS recebido e inicie um pull do servidor
- Pesquise o servidor periodicamente
Cada um tem suas próprias limitações. SMS - sem garantia na hora de chegada. A pesquisa pode esgotar a bateria.
Você tem uma sugestão melhor, por favor? Muito obrigado.
Respostas:
A resposta oficial do Google é o
Android Cloud to Device Messaging Framework (descontinuado)Google Cloud Messaging (descontinuado)Firebase Cloud MessagingEle funcionará no Android> = 2.2 (em telefones que possuem a Play Store).
fonte
( postagem cruzada de uma resposta que eu dei a uma pergunta semelhante - o Android suporta notificação por push quase em tempo real? )
Recentemente, comecei a jogar com o MQTT http://mqtt.org para Android como uma maneira de fazer esse tipo de coisa (por exemplo, notificação por push que não é SMS, mas orientada por dados, entrega quase imediata de mensagens, não pesquisa etc.)
Tenho uma postagem no blog com informações básicas sobre isso, caso seja útil
http://dalelane.co.uk/blog/?p=938
(Nota: MQTT é uma tecnologia IBM e devo salientar que trabalho para IBM.)
fonte
Minha compreensão / experiência com a notificação por push do Android são:
C2DMGCM - Se a sua plataforma Android de destino for 2.2+, vá em frente. Apenas uma captura, os usuários do dispositivo precisam sempre estar logados com uma Conta do Google para receber as mensagens.MQTT - Abordagem baseada em pub / sub, precisa de uma conexão ativa do dispositivo, pode descarregar a bateria se não for implementada com sensibilidade.
Diácono - pode não ser bom a longo prazo devido ao apoio limitado da comunidade.
Editar : Adicionado em 25 de novembro de 2013
GCM - o Google diz ...
fonte
Estrutura de mensagens da nuvem para o dispositivo Android
Importante: O C2DM foi oficialmente descontinuado em 26 de junho de 2012. Isso significa que o C2DM parou de aceitar novos usuários e solicitações de cota. Nenhum novo recurso será adicionado ao C2DM. No entanto, os aplicativos que usam o C2DM continuarão funcionando. Os desenvolvedores existentes do C2DM são incentivados a migrar para a nova versão do C2DM, chamada Google Cloud Messaging para Android (GCM). Consulte o documento de migração do C2DM para o GCM para obter mais informações. Os desenvolvedores devem usar o GCM para novos desenvolvimentos.
Por favor, verifique o seguinte link:
http://developer.android.com/guide/google/gcm/index.html
fonte
Aqui, escrevi alguns passos para Como obter RegID e Notificação a partir do zero
Você pode encontrar o tutorial completo no link da URL abaixo
Recorte de código para obter a ID de registro (token de dispositivo para notificação por push).
Configurar projeto para GCM
Atualizar arquivo AndroidManifest
Para ativar o GCM em nosso projeto, precisamos adicionar poucas permissões em nosso arquivo de manifesto. Vá para AndroidManifest.xml e adicione o código abaixo.
Adicionar declaração de receptor de transmissão GCM
adicione a declaração do GCM Broadcast Receiver na tag do seu aplicativo
Adicionar declaração GCM Servie
Obter ID de registro (token de dispositivo para notificação por push)
Agora vá para sua atividade de inicialização / splash
Adicionar constantes e variáveis de classe
Atualizar os métodos OnCreate e OnResume
Nota : armazene REGISTRATION_KEY, é importante que o envio de mensagens PN para o GCM também mantenha o meu, isso será exclusivo para todos os dispositivos. Ao usar isso, apenas o GCM enviará a notificação por push.
Receber notificações push
Adicionar classe de receptor de transmissão GCM
Como já declaramos “GcmBroadcastReceiver.java” em nosso arquivo Manifest, então vamos criar esse código de classe receptor de atualização de classe dessa maneira
Adicionar classe de serviço GCM
Como já declaramos “GcmBroadcastReceiver.java” em nosso arquivo Manifest, então vamos criar esse código de classe receptor de atualização de classe dessa maneira
fonte
Há um novo esforço de código aberto para desenvolver uma biblioteca Java para notificações push no Android com base no servidor da web Meteor. Você pode conferir no Deacon Project Blog , onde encontrará links para Meteor e o repositório GitHub do projeto. Precisamos de desenvolvedores, então espalhe a palavra!
fonte
Você pode usar o Xtify ( http://developer.xtify.com ) - eles têm um serviço da web de notificações por push que funciona com seu SDK. é gratuito e, até agora, funcionou muito bem para mim.
fonte
ou....
fonte
Eu recomendo usar o GCM - Google Cloud Messaging para Android. É grátis e, para usos simples, deve ser muito fácil.
No entanto, é necessário manter um servidor do terceiro lado para enviar as notificações em seu nome. Se você deseja evitar que haja algumas soluções industriais muito boas para o serviço de notificações por push do Android:
Diclaimer - Trabalho no PushApps e também uso o produto em meus aplicativos há mais de um ano.
fonte
A partir de 18/05/2016, o Firebase é a plataforma unificada do Google para desenvolvedores de dispositivos móveis, incluindo notificações push.
fonte
Receio que você tenha encontrado os dois métodos possíveis. O Google estava, pelo menos inicialmente, implementando uma API do GChat que você poderia usar para uma implementação push / pull. Infelizmente, essa biblioteca foi cortada pelo Android 1.0.
fonte
Não sei se isso ainda é útil. Consegui algo assim com uma biblioteca java em http://www.pushlets.com/
Althoug fazê-lo em um serviço não impedirá o android de desligá-lo e matar o segmento do ouvinte.
fonte
O Google C2DM está depreciado agora, por isso, você deve usar o novo serviço GCM (Google Cloud Messaging). Para obter documentação, consulte http://developer.android.com/guide/google/gcm/gs.html
fonte
C2DM: os usuários do seu aplicativo devem ter a conta do Gmail.
MQTT: quando sua conexão chegou a 1024, ele parará de funcionar por causa do uso de "selecionar modelo" do linux.
Há um serviço de push gratuito e API para Android, você pode experimentá-lo: http://push-notification.org
fonte
Método gratuito e fácil:
Se a sua base de usuários-alvo não for grande (menor que 1000) e você quiser um serviço gratuito, o Airbop é o melhor e o mais conveniente.
Site da Airbop Ele usa o serviço Google Cloud Messaging por meio de sua API e fornece um bom desempenho. usei-o para dois dos meus projetos e foi fácil implementá-lo.
Serviços como o Urbanship são excelentes, mas fornecem uma pilha de implantação inteira e não apenas a coisa das notificações por push.
Se apenas o serviço push for seu objetivo, o Airbop funcionará bem.
Eu não usei o Pushwoosh , mas também é uma ótima opção. Permite enviar para 1.000.000 de dispositivos gratuitamente
fonte
Eu sugeriria o uso de SMS e HTTP. Se o usuário não estiver conectado, envie um SMS ao telefone para notificá-lo de que há uma mensagem aguardando.
É assim que este serviço do Ericsson Labs funciona: https://labs.ericsson.com/apis/mobile-java-push/
Se você implementar isso sozinho, a parte complicada é excluir o SMS recebido sem que o usuário o veja. Ou talvez esteja tudo bem se eles virem no seu caso.
Parece que funciona: Excluindo SMS usando o BroadCastReceiver - Android
Sim, escrever um código como esse pode ser perigoso e você pode arruinar a vida de alguém porque seu aplicativo excluiu um SMS que não deveria ter.
fonte
Você pode usar o Google Cloud Messaging ou GCM , é gratuito e fácil de usar. Além disso, você pode usar servidores push de terceiros como o PushWoosh, o que oferece mais flexibilidade
fonte
Existem muitos servidores de terceiros, como Urban Airship , Xtify, Mainline , ... que permitem o envio não apenas no Android, mas também em iOs, Windows Phone ...
fonte
Firebase Cloud Messaging ( ) é a nova versão do GCM. O FCM é uma solução de mensagens entre plataformas que permite enviar mensagens de forma segura e gratuita. Herda a infraestrutura central do GCM para entregar mensagens de forma confiável no Android, iOS, Web (javascript), Unity e C ++.
Em 10 de abril de 2018, o Google reprovou o GCM. As APIs do servidor e do cliente GCM foram descontinuadas e serão removidas em 11 de abril de 2019. O Google recomenda a migração de aplicativos GCM para o Firebase Cloud Messaging (FCM), que herda a infraestrutura GCM confiável e escalável.
Recurso
fonte
Você pode usar o Pusher
É um serviço hospedado que facilita a adição de dados e funcionalidade em tempo real a aplicativos da Web e móveis.
O Pusher oferece bibliotecas para integrar em todos os principais tempos de execução e estruturas.
PHP, Ruby, Python, Java, .NET, Go and Node
no servidorJavaScript, Objective-C (iOS) and Java (Android)
no cliente.fonte