2016-12-12 15 views
1

FCMを使用しています。 携帯電話の画面がONになっている、すべての携帯電話で受信した通知(私の場合は、12台の携帯電話がある) 携帯がロックされている場合は、サーバによって送信通知が正常ではなく、あなたがどのサーバを使用しないモバイルモバイルがロックされているときに通知を受信しない

+0

アプリケーションが背景で通知を受け取るように設計されていない可能性があります。 –

+0

http://stackoverflow.com/questions/39756330/android-background-notifications-with-firebase-cloud-messaging-not-received –

+0

これが役立つかどうかを確認してください。 http://stackoverflow.com/a/38795553/1840795 –

答えて

1

によって受信(GCMかFCM)?その後、

あなたはFCMを使用している場合

あなたのアプリがバックグラウンドで動作しているか、実行していない間、あなたには、いくつかの他のアプリを使用している場合にのみ、あなたは、通知をヘッドアップされます。お使いの携帯電話が使用されていない場合は、システムトレイの通知やロック画面の通知を受け取ります。

アプリケーションサーバーを使用してhttpプロトコル経由でプッシュ通知を送信する場合、fcmエンドポイントに送信されるjsonデータの優先度を高く設定することさえできます。

Firebaseコンソールを使用している場合は、[高度な通知]セクションの設定で、[優先度]が[高]に設定されていることを確認します。

優先度を高く設定すると、ほとんどの場合、ヘッドアップ通知を確実に受け取ることができます。

EDIT:これはあなたの編集したJSONが成功したテストのためのようになります方法です -

{ 
    "to":"push-token", 
    "priority": "high", 
    "notification": { 
     "title": "Test", 
     "body": "Mary sent you a message!", 
     "sound": "default", 
     "icon": "youriconname" 
    } 
} 

あなたがGCMを使用している場合:

」あなたはあなたの送信者IDを設定していることを確認してくださいGoogleから正しく受信されました。 端末がGoogleのGCMサービスに正しく登録されていることを確認してください。 Googleから受け取った正しいreg idにプッシュを送信していることを確認してください。 Google GCMサービスからエラーが発生していないことを確認してください。 delay_while_idle = 1を設定しましたか?つまり、メッセージがアイドル状態の場合(オフ、オフライン、ロックされた画面など)、メッセージはデバイスに届きません。 wakelockのアクセス許可を変更する場合は、delay_while_idle = 0に変更してください。詳細はこちらをご覧ください。

プッシュが到着するまでに時間がかかることがありますが、時間がかかりすぎて問題が発生することがあります。あなたが送ったプッシュの「生きる時間」が何であるかを確認してください。

+0

メッセージメッセージ=新しいMessage.Builder()。(30) \t \t \t \t \t \t .delayWhileIdle(真) .addData生存時間( "メッセージ"、userMessage) .addData( "画像"、imgURL) .addData( "タイトル"、タイトル) .addData( "targeturl"、targetURL) \t \t \t \t \t \t。ビルド(); – himali

+0

ここで優先度を高く設定するにはどうすればよいですか? – himali

+0

実際に私はあなたのformateで上記のようにメッセージを送信しています....助けてくれてありがとう...私はsoluationを持っている...サーバでそれは "delayWhileIdle(真)"の代わりに "delayWhileIdle(false)"する必要があります – himali

1

この許可をマニフェストに追加すると、電話がスリープ状態にならないようになります。

<uses-permission android:name="android.permission.WAKE_LOCK"/> 

また、デバイスが 高度な設定 - >バッテリーに位置して保護されたアプリケーションでは

をロックされている場合にのみのみ、これらのアプリケーションは、通知を受け取ることになりますバックグラウンドで実行されますアプリを保護する保護されたアプリケーションの概念が彼らのある最新のデバイスをチェックインmanager-> protected aps

+1

私はすでにマニフェストにこの権限を追加しています...助けてくれてありがとう...私はsoluationを持っています...サーバでは "delayWhileIdle(true)"の代わりに "delayWhileIdle(false)"でなければなりません – himali

関連する問題