Чего мне не хватает при реализации Google FCM для Azure в приложении Android Studio?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Чего мне не хватает при реализации Google FCM для Azure в приложении Android Studio?

Сообщение Anonymous »

Перейдя по ссылке на Azure из этого поста, я настроил свой код Android Studio, чтобы мое приложение могло принимать вызовы, когда оно закрыто. Однако у меня возникли проблемы с регистрацией push-уведомлений. В руководстве по Azure не очень понятно, куда включать код, и я попытался поместить его в функцию createAgent() и в конец функции onCreate(). Я могу получить токен регистрации устройства, но не более того. Фактически, судя по встроенным сообщениям в моем коде, кажется, что код пытается зарегистрировать push-уведомления и обработать push-уведомления о входящих вызовах до того, как будет получен токен.
Вот код, который я использую:

Код: Выделить всё

FirebaseMessaging.getInstance().getToken().addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (!task.isComplete()) {
System.out.println("PushNotification getInstanceId failed");
return;
}
deviceToken = task.getResult();
System.out.println("PushNotification device registration token retrieved successfully");

try {
callAgent.registerPushNotification(deviceToken).get();
}
catch (Exception e) {
System.out.println("Something went wrong while registering for Incoming Calls Push Notifications.");
}

try {
PushNotificationInfo notification = PushNotificationInfo.fromMap(pushNotificationMessageDataFromFCM);

}
catch (Exception e) {
System.out.println("Something went wrong while handling the Incoming Calls Push Notifications.");
}
}
});
Первый System.out.println печатается, но после того, как печатаются второй и третий - поэтому кажется, что мой код пытается зарегистрироваться и использовать push-уведомления перед токеном извлекается. Я нигде не вижу, чтобы код вызывал службу MyFirebaseMessage. Единственная «ссылка» — это pushNotificationMessageDataFromFCM, но, похоже, она использует результат службы, но если я поставлю точку останова в код службы, она никогда не сработает.
Вот код услуги:

Код: Выделить всё

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class MyFirebaseMessagingService extends FirebaseMessagingService {
private java.util.Map pushNotificationMessageDataFromFCM;

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getNotification() != null) {
System.out.println("PushNotification");
}
else {
pushNotificationMessageDataFromFCM = remoteMessage.getData();
}
}
}
Как я упоминал вначале, в руководстве по Azure четко не указано, где нужно разместить код, но, похоже, он не работает, если я помещу его в onCreate(). или функцию createAgent().

[*]Есть ли части, которые нужно разместить в одном месте, а части в другом?
[*]Почему создается впечатление, что FirebaseMessagingService никогда не используется?
[*]Почему создается впечатление, что код пытается что-то сделать с push-уведомлениями до того, как токен будет получен?
[*]Есть еще мысли?
< /ul>
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... oid-studio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»