0

私はxamarin通知で作業しようとしています。 アンドロイド用私はこれらのステップに従っています:https://developers.google.com/cloud-messaging/android/client通知を表示するクライアント側。 私のサーバー側では、プッシュシャーププラグインを使用しています。サーバー側からのメッセージが送信されたので、すべて正常に動作するように見えます。 問題は私の電話で通知を受け取っていないことです。私のアプリはちょうど私がデバッグモードに入っているときに破砕したり、時にはアプリがバックグラウンドになっているときに壊れることもあります。私はこの方法を見ることができます:OnMessageReceivedが呼び出されていません

public override void OnMessageReceived(string from, Bundle data){//Extract the message received from GCM: 
     var message = data.GetString("message"); 
     Log.Debug("MyGcmListenerService", "From: " + from); 
     Log.Debug("MyGcmListenerService", "Message: " + message); 

     //Forward the received message in a local notification: 
     SendNotification(message);} 

それはまったく呼び出されません。以下のように 私のマニフェストは次のとおりです。

<service android:name="com.my_companyname_goes_here.app_name_goes_here.android.MyGcmListenerService" android:exported="false"> 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     </intent-filter> 
    </service> 

私は以下のように私の問題を解決する答えが、どれものためにウェブを検索しようとした:GcmListenerService is not called When Application is in Background Xamarin GCM OnMessageReceived is not called電気ショック療法など、ヘルプの 任意の種類をいただければ幸いです。

編集: これはあなたがXamarin公式文書Xamarin Google Cloud Messagingを読むことができた私のJSON

{ 
"message": "test", 
"vibrate": 1, 
"sound": 1 
} 
+0

こんにちは。 GCMの代わりにFCMを使用して、まだ問題が発生していないかどうかを確認できますか。 –

+0

hi @AL。シャープなアプリがFCMで動作するとは思わないので、今のところ私はGCMに悩まされています。このメソッドが呼び出されていない理由を知っていますか?以前にGCM通知で作業しましたか?はいの場合は私に例を示すことができますか?ありがとう。 –

+0

マニフェストに登録を追加しようとしましたか? RECEIVEアクションタグのすぐ下に次の行を追加します。 '' – ADimaano

答えて

0

次のとおりです。ここで

https://developer.xamarin.com/guides/android/application_fundamentals/notifications/remote-notifications-with-gcm/

は、上記のドキュメントに関するサンプルです:

https://developer.xamarin.com/samples/monodroid/RemoteNotifications/

また、お使いのデバイスでGoogle Play Servicesが利用可能であることを確認してください。

更新:

次のようにサービス属性を追加してみてください:

[Service(Exported = false), IntentFilter(new[] { "com.google.android.c2dm.intent.RECEIVE" })] 
public class MyGcmListenerService : GcmListenerService 
{ 
    ... 
} 
+0

@ york-shen-msftこんにちは!もちろん私は上記の例を試しましたが、私のGoogleプレイサービスは利用可能ですが、私のデバイスは通知を受け取るために登録されませんでした。トークンのリフレッシュさえも、サーバーで見ることができるので機能します。私は自分の答えを編集し、通知を受け取るためのコードを表示します。それを見てください。 –

+0

@IdevDev、私は私の答えを更新しました、それを確認してください。 –

+0

@ york-shen-msftもちろん私はそれをすでに持っていました。私は非常に慎重にGoogleの指示に従った、私は一歩を逃したことはありませんOnMessageReceivedメソッドは、まったく呼び出されません。たぶんそれはペイロードと関係があります。サーバーから送信するjsonを見せてください。 私を助けてくれてありがとう。 –

関連する問題