我有一个Xamarin android应用程序,我需要获得Firebase云消息令牌。
我在Android项目中添加了一个包含以下类的文件:
[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseMessagingService
{
const string TAG = "MyFirebaseMsgService";
public override void OnNewToken(string token)
{
base.OnNewToken(token); // << Breakpoint here
SendRegistrationToServer(token);
}
public void SendRegistrationToServer(string token)
{
// Do something with the token
}
}
和我的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="13" android:versionName="13.1" package="com.MyApp.app" android:installLocation="internalOnly">
<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="30" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<application android:label="MyApp" android:icon="@mipmap/launcher_foreground" android:hardwareAccelerated="true" android:debuggable="true">
<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>
我将应用程序部署到一个模拟设备,但从未到达断点。应用程序已部署并正在运行。
我想知道这段代码是否足够,或者这个类是否必须在其他地方引用。
我知道这段代码只在应用程序安装时运行一次,所以每次我卸载应用程序后再进行测试。
有人知道怎么解决这个问题吗?
谢谢,
1条答案
按热度按时间erhoui1w1#
如果你想获得Firebase云消息令牌,你可以使用下面的代码。
此服务
MyFirebaseIIDService
实现OnTokenRefresh方法,该方法在最初创建或更改注册令牌时调用。很少调用
OnTokenRefresh
:它用于在以下情况下更新令牌:您可以查看MS文档以了解更多详细信息。https://learn.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=windows#implement-the-firebase-instance-id-service