Como o C2DM funciona? -- notifications camp android Relacionado O problema

How does C2DM work?


1
vote

problema

português

Atualmente estou desenvolvendo um aplicativo e, como implementei o recurso C2DM, ele me levou a pensar como isso funciona?

Obra via votação? Existe um SMS escondido? Como eles estão pressionando a mensagem no meu dispositivo?

Inglês Original

I'm currently developing an App and as I implemented the C2DM feature it got me thinking how does this work?

Does it work via polling? Is there a hidden SMS? How are they pushing the Message on my device?

  
     
     

Lista de respostas

1
 
vote

com base em Este documento : e este é basicamente como os outros serviços de notificação de push funcionam bem ...

    .
  1. O aplicativo solicita um token para o dispositivo
  2. C2DM responde com o token de registro para o dispositivo específico
  3. O aplicativo envia o token para o seu servidor na web.
  4. Seu serviço agora pode se comunicar com o C2DM (depois de autenticar), e usando os tokens do dispositivo registrado, o C2DM enviará as mensagens para os dispositivos.

No lado do C2DM, o token está associado a um dispositivo específico. Quando você envia uma notificação por push através do C2DM, os servidores do Google enviam essas informações para o dispositivo. Bibliotecas do C2DM no dispositivo "Escute para eles" e passe-as para as intenções conforme necessário.

 

Based on this document: And this is basically how other push notification services work as well...

  1. The application requests a token for the device
  2. C2DM responds with the registration token for the specific device
  3. The application sends the token to your server on the web.
  4. Your service can now communicate with C2DM (after authenticating), and using the registered device tokens, C2DM will send the messages to the devices.

On the C2DM side, the token is associated with a specific device. When you send a push notification through C2DM, the Google servers send that info to the device. C2DM libraries on the device "listen for them" and pass them on to the intents as needed.

 
 
         
         
0
 
vote

Android fornece intenções de todo o sistema para esse tipo de acionamento de aplicativos. Para o C2DM, há toda uma classe de intenções parece com.google.android.c2dm. *. Para usar essas intenções, você precisará adicionar receptores de transmissão em seu aplicativo e registrá-lo com o sistema.
Para fazer isso realmente funcionar, você precisará de serviço remoto também. Seu software no servidor deve ser capaz de enviar mensagens ao servidor C2DM do Google usando HTTP / HTTPS.
Agora, sempre que uma comunicação baseada em protocolo do Push do servidor C2DM é estabelecida, o aplicativo Android System aciona o aplicativo com base em intenções registradas no momento da instalação do aplicativo ...

update:
Mais claramente, quando o seu aplicativo Push Server empurra a mensagem para o servidor C2DM do Google, o Google verifica o token conectado com a mensagem. Mente, este token foi gerado por com.google.android.c2dm.intent.reegistar se o usuário tivesse logado com a Conta do Google. Então, usando este token, o Google chega a conhecer o local de entrega exato. Em seguida, o Google faz uso da estrutura de serviços do Google para empurrar a mensagem no formato de par de valor de chave bruta ...

votação ou não?
Não. Ele utilitários da mesma tecnologia de tipo de envio de e-mail em que conexão entre o servidor e o amp; O cliente é mantido aberto. Então, não há necessidade de executar o Serviço de Polling ..

 

Android provides system-wide intents for such type of app triggering. For C2DM, there's a whole class of intents looks like com.google.android.c2dm.*. To use these intents, you'll need to add broadcast receivers in your app and register it with system.
To make it really work, you'll need remote push service too. Your software on server must be capable of messaging to Google's C2DM server using HTTP/HTTPS.
Now, whenever a push protocol based communication from C2DM server is established, Android system triggers app based on intents registered at the time of app installation...

Update:
More clearly, when your application push server pushes message to Google's C2DM server, Google checks token attached with message. Mind it, this token was generated by com.google.android.c2dm.intent.register if user had logged in with Google Account. So, using this token, Google comes to know exact delivery location. Then, Google makes use of Google Services Framework to push message in raw key-value pair format...

Polling or not?
No. It utilities same email push type technology in which connection between server & client is kept open. So, no need to run polling service..

 
 
         
         

Perguntas relacionadas

6  Por que alguns dispositivos Android (Samsung) mostram carga de bateria em passos de 10%, enquanto outros (HTC) mostram uma porcentagem mais precisa?  ( Why do some android devices samsung show battery charge in steps of 10 wherea ) 
Por que é que os dispositivos Samsung (e talvez outros) mostram a carga da bateria restante em múltiplos de 10%, enquanto outros dispositivos são capazes de m...

0  Desativar chefes de bate-papo (para whatsapp, etc.) em dispositivos Samsung  ( Disable chat heads for whatsapp etc on samsung devices ) 
Após uma atualização de torta Android 9.0 no meu Samsung Galaxy Note 8, notei que notificações do Whatsapp Messenger aparecem semelhantes a como as notificaçõ...

41  Como desativar notificações para aplicativos individuais?  ( How to turn off notifications for individual apps ) 
No meu iPhone, há uma seção de configuração "notificações", que basicamente só me permite escolher quais aplicativos têm o poder de notificar-me. Eu queria ...

2  Alguns tons de notificação só aparecem para determinados aplicativos?  ( Some notification tones only shows up for certain apps ) 
digamos o aplicativo WhatsApp. Quando tento alterar os tons de notificação para o WhatsApp, alguns toques aparecem que não são mostrados quando altero os tons...

8  Como habilitar o modo silencioso durante eventos de calendário?  ( How to enable silent mode during calendar events ) 
Eu gostaria de desabilitar todos os sons de notificação sempre que houver um evento atual no calendário. Como posso fazer isso automaticamente? ...

6  Por que as notificações "atualizadas com sucesso" desaparecem?  ( Why do the successfully updated notifications disappear ) 
Eu notei um comportamento estranho ao atualizar aplicativos com o mais recente de gengibre (2.3.5?) e agora o sanduíche de sorvete (4.0.3) constrói. Também po...

7  O que significa se a luz de notificação da minha HTC Incredible piscar entre verde e âmbar?  ( What does it mean if my htc incredibles notification light flashes between gree ) 
Eu estava dirigindo hoje e meu telefone estava em seu titular. Na época, eu estava usando para GPS e Pandora, e foi conectado usando meu carregador de carro. ...

6  Notificação de e-mail do Exchange não está claro  ( Exchange email notification doesnt clear ) 
Eu tenho um par de contas do Google Mail (Apps e Gmail) vinculados ao meu telefone. Se eu receber e-mail, o telefone notifica-me. Se eu ler o email em um PC, ...

9  Desativar crachás nos dispositivos Samsung Galaxy  ( Disable badges on samsung galaxy devices ) 
Eu tenho um Samsung Galaxy S2 com Android 4.1.2 Jellybean. Quando recebo notificações em SMS ou do Facebook, vejo uma notificação vermelha com número (crach...

9  Posso esconder um programa de atividades em andamento na barra de notificação?  ( Can i hide a program from ongoing activities in the notification bar ) 
Existe uma maneira de ocultar as notificações que um determinado aplicativo mostra na barra de notificação em andamento? ...

6  Notificação diária de tráfego ruim ao longo de trajeto  ( Daily notification of bad traffic along commute home ) 
Existe um aplicativo que me notificará de cada vez especificar para os dias que especificar (ou dias da semana) se houver tráfego atualmente pesado na rota do...

2  Como faço para remover o "slot 1: Nenhum cartão SIM detectado"?  ( How do i remove the slot 1 no sim card detected notification ) 
Eu estou usando o meu telefone como mais um computador tablet e menos de um telefone (não estou usando rádio celular, apenas Internet WiFi), então eu não colo...

1  Existe uma maneira de substituir notificações que não me deixam dispensá-los?  ( Is there a way to override notifications that dont let me dismiss them ) 
Eu tenho uma galáxia nexus que está funcionando 4.2.2. Certos aplicativos, como palavras com amigos, ocasionalmente enviam notificações spamy para experimenta...

8  Esta notificação é que continua chegando no meu telefone um vírus?  ( Is this notification that keeps coming up on my phone a virus ) 
Esta notificação continua chegando, e não tenho certeza se é real ou um vírus, ou como interrompê-lo. Diz 'Aviso do sistema Android! O Google encontrou inseto...

7  CyanogenMod - O que é "modo de notificação"?  ( Cyanogenmod what is notification mode ) 
Acho que estou entendendo mal as opções de perfis em CyanogenMod sobre notificações. Aqui está o que estou tentando fazer: gostaria de todas as notificações...




© 2021 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.