![](/img/trans.png)
[英]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.