在我的应用程序中,我想使用fireBase进行通知。我想当点击通知时(当应用程序关闭时,我的意思是应用程序是background)将数据发送putExtra到mainActivity。我下面写的代码,但点击时通知(在应用程序是背景),但让我空了getStringExtra!MyNotificationManager 类:public class MyNotificationManager { private Context mCtx; private Uri soundUri; private static MyNotificationManager mInstance; public MyNotificationManager(Context context) { mCtx = context; } public static synchronized MyNotificationManager getInstance(Context context) { if (mInstance == null) { mInstance = new MyNotificationManager(context); } return mInstance; } public void displayNotification(String title, String body) { soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Intent intent = new Intent(mCtx, MainActivity.class); intent.putExtra("fcm_notification", "Y"); PendingIntent pendingIntent = PendingIntent.getActivity(mCtx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mCtx, Constants.NOTIF_CHANNEL_ID) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle(title) .setSound(soundUri) .setAutoCancel(true) .setVibrate(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400}) .setContentText(body) .setContentIntent(pendingIntent); NotificationManager mNotifyMgr = (NotificationManager) mCtx.getSystemService(NOTIFICATION_SERVICE); if (mNotifyMgr != null) { mNotifyMgr.notify(1, mBuilder.build()); } }}当点击通知(在应用程序是后台)时,在这一行中向我显示空消息ToastString value = getIntent().getStringExtra("fcm_notification");我该如何解决?
2 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
从控制台发送通知时,从“高级选项”添加自定义数据:
出于某种原因,firebase 不允许密钥以 fcm 开头。您不能使用fcm_notification
. 使用不同的键。
对于上图,按如下方式接收密钥:
String value = getIntent().getStringExtra("test_key");
幕布斯6054654
TA贡献1876条经验 获得超7个赞
尝试这个:
Intent intent = new Intent(mCtx, MainActivity.class);
intent.putExtra("EXTRA_DATA", title);
并获得:
String value = getIntent().getStringExtra("EXTRA_DATA");
最好换钥匙。此外,您似乎需要从控制台发送数据,然后将数据发送到另一个Activity.
我已经使用当前通知title来检查它是否返回标题。如果它返回了值,那么,尝试从控制台发送数据。
添加回答
举报
0/150
提交
取消