web-dev-qa-db-fra.com

Comment envoyer un MCG hautement prioritaire?

J'utilise un Nexus 5 avec Android M Preview.

Mon problème que j'essaye de résoudre est:

L'accès au réseau est désactivé, sauf si votre application reçoit un chatouillement hautement prioritaire sur Google Cloud Messaging.

Ce que je fais c'est:

Je mets le téléphone en mode Doze, puis j'envoie une notification Push avec la priorité avec la valeur 10 et je m'attends à disposer d'un accès Internet pendant quelques instants, mais cela ne fonctionne pas.

Devrais-je utiliser un autre type de notifications? Il y a une documentation déjà disponible?

Merci.

Changements Android M: https://developer.Android.com/preview/behavior-changes.html

Ce que j'ai trouvé à propos des messages de priorité de GCM: https://developers.google.com/cloud-messaging/server-ref

14
João Lopes

Définir la priorité sur 10 est la bonne chose à faire, mais cela ne fonctionne pas avec la version d'Android M publiée au niveau des E/S. Il a été corrigé et les messages de priorité 10 fonctionneront comme prévu avec la version publique.

8
morepork

https://developers.google.com/cloud-messaging/concept-options?hl=fr#setting-the-priority-of-a-message

En fait, il est lié à la version des services Google Play, pas à la version Android. Utilisez "élevé" pour la priorité.

2
Wonil

Ajoutez simplement ceci dans votre fichier (.php, .jsf, etc):

$fields = array(
                    'registration_ids' => $Android,
                    **'priority' => 'high',**
                    'data' => array( 'message' => $message,
                                     'title' => $title,                                 
                                     'created_at' => $created_at,                                
                                     'is_background' => $is_background,
                                     'pantallaMostrarPushAndroid' => "pushNotificationNormal")
                ); 

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

                // Execute post
                $resultAndroid = curl_exec($ch);
0
FABiO