Android GCM通知使用声音



我有一个php代码发送到GCM信息通知给用户,这个代码发送ok,我在我的android设备中接收,但声音和徽章不工作。我不知道为什么。

在数组$msg上只有一个字段'message work',其他字段不工作。

我该如何解决这个问题?这是我的代码:

<?php
//Checking http request we are using post here 
if($_SERVER['REQUEST_METHOD']=='POST'){
//Getting api key 
$api_key = $_POST['apikey'];    
//Getting registration token we have to make it as array 
$reg_token = array($_POST['regtoken']);
//Getting the message 
$message = $_POST['message'];
//Creating a message array 
$msg = array
(
    'message'   => $message,
    'title'     => 'Message from Simplified Coding',
    'subtitle'  => 'Android Push Notification using GCM Demo',
    'tickerText'    => 'Ticker text here...Ticker text here...Ticker text here',
    'vibrate'   => 1,
    "sound"=> "default",
    "badge"=> "2",
    'largeIcon' => 'large_icon',
    'smallIcon' => 'small_icon'
);
//Creating a new array fileds and adding the msg array and registration token array here 
$fields = array
(
    'registration_ids'  => $reg_token,
    'data'          => $msg
);
//Adding the api key in one more array header 
$headers = array
(
    'Authorization: key=' . $api_key,
    'Content-Type: application/json'
); 
//Using curl to perform http request 
$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 ) );
//Getting the result 
$result = curl_exec($ch );
curl_close( $ch );
//Decoding json from result 
$res = json_decode($result);

//Getting value from success 
$flag = $res->success;
//if success is 1 means message is sent 
if($flag == 1){
    //Redirecting back to our form with a request success 
    header('Location: index.php?success');
}else{
    //Redirecting back to our form with a request failure 
    header('Location: index.php?failure');
}
}

请检查是否有现有的声音文件。

如通知负载支持中所述,sound参数表示设备收到通知时播放的声音。

Android的声音文件必须驻留在/res/raw/中,而iOS的声音文件可以在客户端应用程序的主包中或在应用程序的数据容器的Library/Sounds文件夹中。

还请注意使用DEFAULT_SOUND将忽略任何给定的声音。

更多信息,请检查在这个SO帖子中给出的解决方案-如何在android中通过代码更改通知声音?

相关内容

  • 没有找到相关文章

最新更新