0

公式のfirebaseのドキュメントでC#Xamarin.Androidプロジェクトにプッシュ通知を実装しました。通知を受け取った後にRuntimeExceptionがスローされました

firebaseコンソールで通知を送信することは可能です。今、別のC#サービスからメッセージを送信しようとしました。デバイスモニターに、GCMメッセージが配信されたことが示されます。

を参照してくださいAndroidデバイスモニタメッセージ:http://imgur.com/a/wNOV3

ここに私のコードです。なぜこれが起こるのだろうか?

のAndroidManifest.xml

<application android:label="myApp" android:icon="@drawable/icon"> 
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" /> 
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> 
    <intent-filter> 
    <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
    <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
    <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
    <category android:name="${applicationId}" /> 
    </intent-filter> 
    </receiver> 

<service android:name=".MyFirebaseMessagingService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
    </intent-filter> 
</service> 
</application> 

MyFirebaseMessagingService.cs

[Service] 
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })] 
public class MyFirebaseMessagingService : FirebaseMessagingService 
{ 
    const string TAG = "MyFirebaseMsgService"; 

    public MyFirebaseMessagingService() 
    { 
     Log.Debug(TAG, "Service called"); 
    } 
    public override void OnMessageReceived(RemoteMessage message) 
    { 
     string msg = message.GetNotification().Body; 
     Log.Debug(TAG, msg);  
    } 
} 

答えて

0

私はそれは私がMyApp.Droid.MyFirebaseMessagingServiceでAndroidRuntimeのエラーを得た。このマニフェスト設定

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxxxx.xxxx" android:versionName="1.0.0" android:versionCode="2"> 
    <uses-sdk android:minSdkVersion="15" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <application android:icon="@drawable/icon" android:label="XX xXx"> 
     <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" /> 
     <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
       <category android:name="${applicationId}" /> 
      </intent-filter> 
     </receiver> 
    </application> 
</manifest> 
+0

で動作しました。この設定でOnMessageReceived – localhorst27

+0

あなたはあなたのログを投稿できますか? – Leze

+0

これで動作します。しかし、アプリが開いている場合、通知はありません。アプリが閉じている場合は機能します。 – localhorst27

関連する問題