2016-08-10 16 views
0

私はGCM情報に通知するユーザーにこのコードを送信し、Androidのデバイスで受信しますが、サウンドとバッジは機能しません。どうしてか分かりません。サウンドを使用したAndroidのGCM通知

アレイ上では、$msgフィールド 'メッセージ作業'のみ、他のフィールドは機能しません。

どうすればこの問題を解決できますか?これは私のコードです:

<?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'); 
} 
} 
+0

デフォルトの通知音としてデバイスが設定したものなので、デフォルトのサウンドは機能するはずです。 AndroidではなくiOS端末で利用できる機能であるバッジについては、 –

答えて

1

サウンドファイルがあるかどうか確認してください。

Notification payload supportに記載されているように、soundは、デバイスが通知を受信したときに再生するサウンドを示します。 iOSの音声ファイルは、クライアントアプリケーションのメインバンドル内またはライブラリ/アプリケーションのデータコンテナのフォルダをサウンドにすることができながら、

Androidのサウンドファイルは、/res/raw/に存在する必要があります。

DEFAULT_SOUNDを使用すると、特定のサウンドは無視されます。

詳細については、この記事の後半のHow to change notification sound by code in android?で解決策を確認してください。それが役に立てば幸い。

関連する問題