Отправка некоторых данных в форме push-уведомлений из одного приложения на устройстве в другое приложение на другом устройстве - PullRequest
0 голосов
/ 29 июня 2018

Я работаю над двумя приложениями одновременно в Android. Один из них - «Приложение А», другой - «Приложение Б». Я хочу отправить данные, такие как изображение профиля и имя, из приложения A (в устройстве A) в приложение B (в устройстве B) в форме push-уведомления, которое будет отправлено приложением A и получено приложением B. Все это будет сделано через FCM. Может кто-нибудь предложить мне технический подход, которому я должен следовать? Любая ссылка также будет полезна.

Ответы [ 3 ]

0 голосов
/ 29 июня 2018

Я сделал 2 разных приложения, которые общаются через уведомления

Вот как:

Обратите внимание, что это просто псевдокод, использующий rxjava и модификацию 2.0

Ваш код зависит от того, что вы используете

В вашем экземпляре дооснащения:

примечание: https://fcm.googleapis.com - базовый URL

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) {

                }
            }));
        }
    });
0 голосов
/ 29 июня 2018

Есть несколько этапов, которые вы хотели бы сделать, и я постараюсь упомянуть некоторые общие этапы.

  1. Оба приложения должны быть интегрированы с Firebase и связаны с одним общим проектом. Это сделано для того, чтобы они могли получить доступ и общаться.

  2. После регистрации каждого приложения на каждом устройстве с помощью FCM у вас будут уникальные идентификаторы (маркер регистрации) для каждого приложения / устройства. Вам нужно найти способ связать это с другим устройством, которое может быть через общую базу данных Firebase или любым другим способом, который вы считаете нужным.

  3. Затем вы можете использовать API REST Firebase для отправки вашего push-уведомления целевому устройству вот документация

Теперь, с учетом вышесказанного, вам нужно дважды проверить, чтобы понять, зачем вам отправлять push-уведомления, потому что, если ваша цель - общаться, то вам нужно это выяснить, чтобы выполнить задачу № 2, упомянутую выше.

0 голосов
/ 29 июня 2018

можно отправлять push-уведомления из приложения Android, вам нужно сделать это с помощью API REST,

как в этом ответе

Firebase: отправка уведомления с помощью REST API

вы могли бы сделать что-то похожее, но используя asynctask в Android или модифицировать для выполнения запросов от Android.

Не удалось отправить изображения, но вы можете отправить URL-адрес с расположением изображений, а затем загрузить его.

вы можете отправить его в другое устройство с другим установленным приложением, но вам необходимо иметь токен устройства.

Прочитать документацию FCM о параметрах API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...