以推送通知的形式从设备中的一个应用程序向另一设备中的另一个应用程序发送一些数据

时间:2018-06-29 05:57:44

标签: android firebase

我正在Android中同时处理两个应用程序。一个是假设“ App A”,另一个是“ App B”。我想以推送通知的形式将数据(例如个人资料图片和姓名)从应用程序A(在设备A中)发送到应用程序B(在设备B中),该数据将由应用程序A发送并由应用程序B接收。将通过FCM完成。谁能建议我应该遵循的技术方法?任何类型的链接也将有所帮助。

3 个答案:

答案 0 :(得分:1)

我制作了2种通过通知进行通信的应用

方法如下:

请注意,这只是使用rxjava和改造2.0的伪代码

您的代码我取决于您使用的内容

在您的改造实例中:

请注意:https://fcm.googleapis.com是基本网址

retrofit = new Retrofit.Builder()
            .baseUrl("https://fcm.googleapis.com")
            .client(getHttp())
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .build();

    service  = retrofit.create(SendMsgService.class);

然后在您的服务类别中:

 @POST("/fcm/send")
 rx.Observable<Message> sendMsg(@Header("Authorization") String auth,
                                @Body Message Message);

您的DataModel类(此处,data,message_id是fcm中的几个预定义参数):

@SerializedName("to")
@Expose
private String to;
@SerializedName("data")
@Expose
private NotifyData notification;
@SerializedName("message_id")
@Expose
private String message_id;

public Message(String to, NotifyData notification, String message_id) {
    this.to = to;
    this.notification = notification;
    this.message_id = message_id;
}

public String getTo() {
    return to;
}

public void setTo(String to) {
    this.to = to;
}

public NotifyData getNotification() {
    return notification;
}

public void setNotification(NotifyData notification) {
    this.notification = notification;
}

public String getMessage_id() {
    return message_id;
}

public void setMessage_id(String message_id) {
    this.message_id = message_id;
}

然后调用您的API:

sendMsgBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            NotifyData notifydata = new NotifyData("Notification title","Notification body");

            subscription.add(sendMsgViewModel.sendMsg("key=YOUR_KEY_HERE"
                    ,new Message("fcm_id_of_other_device_you_want_to_send_notification"
                            ,notifydata,""))
                    .subscribe(new Observer<Message>() {
                @Override
                public void onCompleted() {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onNext(Message message) {

                }
            }));
        }
    });

答案 1 :(得分:0)

可以从Android应用发送推送通知,您需要使用API​​ REST进行推送,

就像这个答案

Firebase : Send notification with REST API

您可以进行类似的操作,但是在android中使用asynctask或对来自Android的发出请求进行改造。

您无法发送图片,但是可以发送带有图片位置的网址,然后将其下载。

您可以将其发送给安装了另一个应用程序的另一个设备,但是您需要具有设备令牌。

阅读有关API参数的FCM文档。

答案 2 :(得分:0)

您要执行的过程几乎没有很多步骤,我将尝试提及一些常规步骤。

  1. 两个应用都需要与Firebase集成并链接到一个共享项目。这样他们就可以访问和交流。

  2. 在每个设备上用FCM注册了每个应用程序之后,您将具有每个应用程序/设备的唯一标识(注册令牌)。您需要找到一种与其他设备进行通信的方法,可以通过共享的Firebase数据库或您认为合适的任何其他方式进行通信。

  3. 然后,您可以使用Firebase的REST API将推送通知发送到目标设备here is the documentation

现在说了这些,您需要仔细检查一下为什么首先需要发送推送通知,因为如果您的目标是进行交流,那么您应该弄清楚要完成上述任务2。