dongzhao2725 2018-10-30 04:45
浏览 170

当app在前台时发送推送通知

How do I send a push a notification, even when the app is in the background? I have an android app that recieves push notifications from a server and it does not send when the app is in the background. it only sends when the app is in the background.

  • 写回答

1条回答 默认 最新

  • duanpuluan0480 2018-10-30 05:15
    关注

    You need to add this in your manifest file:

        <service
            android:name=".name_of_your_firebase_instace_service"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
        <service
            android:name=".nname_of_your_firebase_messaging_service
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
    

    This is the class for refreshing token(instance service)

    public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
    private static final String TAG = MyFirebaseInstanceIDService.class.getSimpleName();
    
    @Override
    public void onTokenRefresh() {
        super.onTokenRefresh();
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    
    
    
    
        // sending reg id to your server
        sendRegistrationToServer(refreshedToken);
    
        Log.d("NewToken",refreshedToken);
    
    }
    
    private void sendRegistrationToServer(final String token) {
        // sending gcm token to server
        Log.e(TAG, "sendRegistrationToServer: " + token);
    }
    
     }
    

    Mmessage service where you will receive your message/notification

    public class MyFirebaseMessagingService extends FirebaseMessagingService {
    
    private static final String TAG = MyFirebaseMessagingService.class.getSimpleName();
    
    private NotificationUtils notificationUtils;
    
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.e(TAG, "From: " + remoteMessage.getFrom());
    
        if (remoteMessage == null)
            return;
    
        // Check if message contains a notification payload.
    
    
        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {
            Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());
            //you can send your own custom notification here if you are sending notification in data tag or if you are sending notification with "notification tag" it will handle it automatically
    
    
        }
    }
    }
    

    Note: do not forget to add your google-service.json file in app folder of your project

    评论

报告相同问题?

悬赏问题

  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)