我正在使用firebase向我的应用发送通知.我想将每台设备上收到的通知保存在本地数据库中.问题是,当应用程序在后台并收到通知时,onMessageReceived()将不会调用该方法,而是根据文档将通知添加到系统托盘中.该文档还提到以下内容,以便在应用程序处于后台时收到通知:
在这些情况下,通知将传递到设备的系统托盘,并且数据有效负载将在启动器活动的附加内容中传递.
因此,当我尝试访问intent中的extras时,找不到通知的键.我的代码在MainActivity.java:
if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) {
Object value = getIntent().getExtras().get(key);
Toast.makeText(this, "Key: " + key + " Value: " + value, Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我们从服务器发送的通知:
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何检索通知中的值?
android android-intent firebase google-cloud-messaging firebase-cloud-messaging
从Android P开始我的应用程序无法注册GCM ID.我的PushManager代码看起来像
try
{
GcmClient.CheckDevice(context);
GcmClient.CheckManifest(context);
String[] senderIds = GcmBroadcastReceiver.SENDER_IDS;
foreach (String id in senderIds)
{
System.Diagnostics.Debug.WriteLine("sender id = " + id);
}
GcmClient.Register(context, senderIds);
if (GcmClient.IsRegistered(context))
{
System.Diagnostics.Debug.WriteLine("push registration successfull: " +
GcmClient.GetRegistrationId(context));
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("push registration failed: " + e.Message.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.app" android:versionName="1.8.5" android:versionCode="97">
<uses-sdk android:minSdkVersion="16" />
<application android:label="My app" android:icon="@mipmap/icon" android:theme="@style/Theme.App" android:hardwareAccelerated="true" android:windowSoftInputMode="stateHidden|adjustResize" android:name="android.support.multidex.MultiDexApplication">
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
</application>
<permission android:name="com.rotogrinders.rg_lineups.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.rotogrinders.rg_lineups.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" …Run Code Online (Sandbox Code Playgroud) 我正在使用Firebase云消息传递API创建应用程序...我能够从服务器向我的客户端应用程序发送通知和数据.但问题是当应用程序打开时,通知不会在数据出现时触发(我的意思是我记录了它)这不是问题.但是当应用程序关闭时,会收到通知,而我点击通知时会打开活动,而我无法看到日志数据.我需要将数据更新为TextView ..
我的MyFirebaseMessagingService:
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO: Handle FCM messages here.
// If the application is in the foreground handle both data and notification messages here.
// Also if you intend on generating your own notifications as a result of a received FCM
// message, here is where that should be initiated.
Log.d(TAG, "From: " + remoteMessage.getFrom());
Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
Log.e("FROM", "From: " + remoteMessage.getFrom());
String data = remoteMessage.getData().get("message");
Log.e("KOIII", "Notification Message Body: …Run Code Online (Sandbox Code Playgroud)