Urban Airship Android GCM не получает push-уведомлений на Android Oreo и Pie - PullRequest
0 голосов
/ 24 октября 2018

Только что обновил приложение до API 27 и добавил com.urbanairship.android:urbanairship-gcm:9.1.0 в файл build.gradle.Я могу получать push-уведомления на Android N и ниже, но не работает при попытке на Android O и выше, я уже назначил канал для уведомлений, но он все еще не работает, вот как выглядит код для AutoPilot:

public class UrbanAirshipAutoPilot extends AutoPilot {

  @Override
  public void onAirshipReady(@NonNull UAirship airship) {
      airship.getPushManager().setUserNotificationsEnabled(true);

      // Android O
      if (Build.VERSION.SDK_INT >= 26) {
          Context context = UAirship.getApplicationContext();
          NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

          NotificationChannel channel = new NotificationChannel(UAConstants.DEFAULT_CHANNEL,
                  context.getString(R.string.custom_channel_name,
                  NotificationManager.IMPORTANCE_DEFAULT);

          notificationManager.createNotificationChannel(channel);
      }
      airship.getPushManager().setPushEnabled(true);
      airship.getPushManager().setUserNotificationsEnabled(true);

  }

  @Override
  public AirshipConfigOptions createAirshipConfigOptions(@NonNull Context context) {
      AirshipConfigOptions options = new AirshipConfigOptions.Builder()
          .setDevelopmentAppKey(UAConstants.DEV_PROD_KEY)
          .setDevelopmentAppSecret(UAConstants.DEV_SECRET_KEY)
          .setProductionAppKey(UAConstants.PROD_APP_KEY)
          .setProductionAppSecret(UAConstants.PROD_SECRET_KEY)
          .setFcmSenderId(UAConstants.GCM_PROJECT_ID)
          .setNotificationIcon(R.drawable.ic_notification)
          .setNotificationAccentColor(ContextCompat(getContext(), R.color.accent))
          .setNotificationChannel(UAConstants.DEFAULT_CHANNEL)
          .build();

      return options;
  }
}

Я также добавил Автопилот в Манифест, и его вызывают, кажется, он работает и правильно инициализируется на любой версии Android, но по какой-то причине уведомление не приходит на Android O.

Также мы все еще используемGCM на данный момент

1 Ответ

0 голосов
/ 24 января 2019

Мы видим ту же проблему с Urban Airship и GCM.Сейчас мы протестировали использование Firebase с Urban Airship, и теперь кажется, что уведомления работают.

Из-за других связанных с этим вопросов, таких как здесь , я предполагаю, что проблема не в Urban Airship, а в Android, где GCM просто глючит и не исправляется, потому что устарел.

...