web-dev-qa-db-de.com

Wie sende ich ein GCM mit hoher Priorität?

Ich benutze ein Nexus 5 mit Android M Preview.

Mein Problem, das ich zu lösen versuche, ist:

Der Netzwerkzugriff ist deaktiviert, es sei denn, Ihre App erhält einen Google Cloud Messaging-Tickle mit hoher Priorität.

Was ich mache ist:

Ich versetze das Telefon in den Ruhezustand und sende dann eine Push-Benachrichtigung mit der Priorität 10 und erwarte für kurze Zeit einen Internetzugang, aber das funktioniert nicht.

Sollte ich eine andere Art von Benachrichtigungen verwenden? Gibt es bereits Unterlagen?

Vielen Dank.

Änderungen an Android M: https://developer.Android.com/preview/behavior-changes.html

Was ich über GCM-Prioritätsnachrichten gefunden habe: https://developers.google.com/cloud-messaging/server-ref

14
João Lopes

Das Festlegen der Priorität auf 10 ist richtig, aber es funktioniert nicht mit der Android-M-Version, die bei I/O veröffentlicht wurde. Es wurde behoben, und Nachrichten mit Priorität 10 funktionieren wie erwartet mit der öffentlichen Version.

8
morepork

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

In der Tat ist es mit der Google Play Services-Version und nicht mit der Android-Version verbunden. Verwenden Sie "high" für die Priorität.

2
Wonil

Fügen Sie dies einfach in Ihre Datei ein (.php, .jsf usw.):

$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