Xamarin.Android-FirebaseInstanceIdService已弃用,OnNewToken()不起作用

时间:2018-08-16 18:17:59

标签: android firebase xamarin firebase-cloud-messaging

我想在我的使用Firebase Cloud Messaging的Xamarin Android项目中从FirebaseMessagingService实现OnNewToken()方法,因为FirebaseInstanceIdServiceOnTokenRefreshed()已弃用。

我尝试过

    [Service]
    [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
    public class MessagingService : FirebaseMessagingService
    {
        const string TAG = "MyFirebaseMsgService";
        public override void OnNewToken(string token)
        {
            Log.Debug(TAG, "Refreshed token: " + token);
            SendRegistrationToServer(token);
        }

        public void SendRegistrationToServer(string token)
        {
            ...
        }

    }

但是我的OnNewToken()没有被击中。我在干什么我是否需要在Android清单文件中包含任何内容?我找不到有关此更新的Xamarin Android专用文档。请帮忙。非常感谢。

也请提供从Activity获得令牌的方法。谢谢

1 个答案:

答案 0 :(得分:0)

public class MyActivity : AppCompatActivity, Android.Gms.Tasks.IOnSuccessListener
{
        public void OnSuccess(Java.Lang.Object result)
        {
                var token = result.Class.GetMethod("getToken").Invoke(result).ToString();
                Log.Debug(TAG, "InstanceID token: " + token);
        }
}

只需致电

FirebaseInstanceId.Instance.GetInstanceId().AddOnSuccessListener(this);