Android - 使用google云消息传递的高优先级消息(使用corona sdk)

ham*_*obi 5 php mobile android coronasdk google-cloud-messaging

我正试图唤醒手机或使用GCM让灯光闪烁.我收到的信息很好,但是设置高优先级或根本没有优先权.我正在使用razr maxx hd进行测试.这里有什么我想念的吗?

<?php
// API access key from Google API's Console
define('API_ACCESS_KEY', 'blee');

// prep the bundle
$msg = array
(
    'body' => 'this is my nice body',
    'sound' => 'misc/androidnotification.mp3',

    'custom' => array(
        'route' => '/beee'
    )
);
$fields = array
(
    'collapse_key' => 'test',
    "time_to_live" => 0,
    'priority' => 'high',
    'to' => 'mykey',    
    'data'          => $msg,

);

$headers = array
(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
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 ) );
$result = curl_exec($ch );
curl_close( $ch );
echo $result;
Run Code Online (Sandbox Code Playgroud)

Ani*_*she 4

来自以下两个链接

GCM优先级

优化打瞌睡和应用程序待机

您可以推断出高优先级消息

GCM 尝试立即传递高优先级消息,允许 GCM 服务在可能的情况下唤醒睡眠设备并打开与应用程序服务器的网络连接。

对于普通消息

普通优先级消息不会在睡眠设备上打开网络连接,并且它们的传递可能会延迟以节省电池。

正如您从以下问题的答案中看到的

对于低于 Marshmallow 的 Android 版本,您永远无法确定 Android 设备是否处于睡眠模式,对于运行 Marshmallow 或更高版本的设备,有打瞌睡模式。

因此,获取运行 Marshmallow 或更高版本的设备,并通过运行以下命令将其置于剂量模式

$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step
Run Code Online (Sandbox Code Playgroud)

您可能需要多次运行第二个命令。重复此操作,直到设备状态变为空闲。

现在尝试发送高优先级和普通优先级的推送通知。当消息优先级较高时,应该会收到通知,同样,当未设置优先级或设置为正常时,通知将在一定延迟后或在您唤醒设备时传送。