[英]Special messages on Google Cloud Messaging (PUSH to Android)
[英]Android - high priority messages with google cloud messaging (using corona sdk)
我正试图唤醒手机或使用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;
从以下两个链接
您可以推断出高优先级消息
GCM尝试立即提供高优先级消息,允许GCM服务在可能的情况下唤醒休眠设备并打开与应用服务器的网络连接。
并为正常的消息
普通优先级消息不会打开睡眠设备上的网络连接,并且可能会延迟它们的传送以节省电池电量。
正如你从以下问题的答案中看到的那样
你永远不能确定Android设备是否处于睡眠模式,因为Android版本低于Marshmallow,对于运行Marshmallow或更高版本的设备,有打盹模式。
因此,通过运行以下命令,获取运行Marshmallow或更高版本的设备并将其置于剂量模式
$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step
您可能需要多次运行第二个命令。 重复此过程,直到设备状态变为空闲。
现在尝试发送具有高优先级和普通优先级的推送通知。 当消息优先级高时,应该接收通知,类似地,当没有设置优先级或设置为正常时,通知将在延迟或唤醒设备时传送。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.