我正在Android中同时处理两个应用程序。一个是假设“ App A”,另一个是“ App B”。我想以推送通知的形式将数据(例如个人资料图片和姓名)从应用程序A(在设备A中)发送到应用程序B(在设备B中),该数据将由应用程序A发送并由应用程序B接收。将通过FCM完成。谁能建议我应该遵循的技术方法?任何类型的链接也将有所帮助。
答案 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)
您要执行的过程几乎没有很多步骤,我将尝试提及一些常规步骤。
两个应用都需要与Firebase集成并链接到一个共享项目。这样他们就可以访问和交流。
在每个设备上用FCM注册了每个应用程序之后,您将具有每个应用程序/设备的唯一标识(注册令牌)。您需要找到一种与其他设备进行通信的方法,可以通过共享的Firebase数据库或您认为合适的任何其他方式进行通信。
然后,您可以使用Firebase的REST API将推送通知发送到目标设备here is the documentation
现在说了这些,您需要仔细检查一下为什么首先需要发送推送通知,因为如果您的目标是进行交流,那么您应该弄清楚要完成上述任务2。