Только что обновил приложение до 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 на данный момент