14

我正在使用带有 Android M Preview 的 Nexus 5。

我要解决的问题是:

网络访问被禁用,除非您的应用收到高优先级的 Google Cloud Messaging tickle。

我正在做的是:

我将手机置于打盹模式,然后我发送一个优先级为 10 的推送通知,我希望可以短暂访问互联网,但这不起作用。

我应该使用其他类型的通知吗?有任何可用的文档吗?

谢谢。

Android M 变化: https ://developer.android.com/preview/behavior-changes.html

我对 GCM 优先级消息的发现: https ://developers.google.com/cloud-messaging/server-ref

4

3 回答 3

9

将优先级设置为 10 是正确的做法,但它不适用于 I/O 发布的 Android M 版本。它已得到修复,优先级 10 的消息将在公开发布时按预期工作。

于 2015-07-09T20:45:50.627 回答
2

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

实际上,它与 Google Play Services 版本有关,而不是与 Android 版本有关。使用“高”作为优先级。

于 2015-09-15T12:05:24.347 回答
1

只需将其添加到您的文件(.php、.jsf 等)中:

$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);
于 2016-05-18T12:38:48.923 回答