Обновление библиотеки UrbanAirship с 8.3.2 до 9.0.0

У меня не работают push-уведомления, потому что я использую старый SDK Urban Airship (теперь переименованный просто в Airship). Я использую версию 8.3, и мне нужно обновить ее до версии 9.0.0. Я читаю https://github.com/urbanairship/android-library/blob/master/documentation/migration/migration-guide.md для получения инструкций по обновлению. Я нашел этот раздел, который имеет отношение к моему делу:

UrbanAirship Library 8.x to 9.0.0

GCM

All of the GCM classes have been moved into the package com.urbanairship.push.gcm. If you have manually added the GcmPushReceiver or UAInstanceIDListenerService in your manifest, please update the entries.

Я нашел два файла AndroidManifest.xml в своем исходном коде:

  1. C:\Users[путь]\app\src\main\AndroidManifest.xml

    <!-- Optional: Receives push and registration events from the Urban Airship SDK. -->

    <intent-filter>
        <action android:name = "com.urbanairship.push.CHANNEL_UPDATED"/>
        <action android:name = "com.urbanairship.push.OPENED"/>
        <action android:name = "com.urbanairship.push.DISMISSED"/>
        <action android:name = "com.urbanairship.push.RECEIVED"/>
    
        <category android:name = "${applicationId}"/>
    </intent-filter>
    

  2. C:\Users[путь]\app\build\intermediates\exploded-aar\com.urbanairship.android\urbanairship-sdk\8.3.2\AndroidManifest.xml

``

    <service
        android:name = "com.urbanairship.push.UAInstanceIDListenerService"
        android:exported = "false" >
        <intent-filter android:priority = "-999" >
            <action android:name = "com.google.android.gms.iid.InstanceID" />
        </intent-filter>
    </service>

    <receiver
        android:name = "com.urbanairship.push.GcmPushReceiver"
        android:permission = "com.google.android.c2dm.permission.SEND" >
        <intent-filter android:priority = "-999" >
            <action android:name = "com.google.android.c2dm.intent.RECEIVE" />
            <action android:name = "com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name = "${applicationId}" />
        </intent-filter>
    </receiver>

Вопрос 1. Когда в инструкции предлагается обновить записи in your manifest, это относится к первому или второму AndroidManifest.xml файлу, который я перечислил выше? Я предполагаю, что это может относиться только к C:\Users[path]\app\src\main\AndroidManifest.xml, потому что C:\Users\[path]\app\build\intermediates\exploded-aar\com.urbanairship.android\urbanairship-sdk\8.3.2\AndroidManifest.xml будет автоматически генерироваться при компиляции приложения.

Вопрос 2. Когда в инструкции сказано, что in your manifest, please update the entries, это означает удалить добавленные вручную строки, потому что пакет com.urbanairship.push.gcm уже включает GcmPushReceiver и UAInstanceIDListenerService и он будет автоматически заботиться об этом?

Спасибо.

ОБНОВЛЕНИЕ 1: Глядя на файл Android.Manifest.xml в https://github.com/urbanairship/android-library/blob/master/urbanairship-gcm/src/main/AndroidManifest.xml, мой должен выглядеть так после обновления до версии 9.7.1, правильно? Затем я должен включить в свой проект файлы/классы, перечисленные в https://github.com/urbanairship/android-library/tree/master/urbanairship-gcm/src/main/java/com/urbanairship/push/gcm. Правильный?

0
0
239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Теперь я использую это в своем build.gradle (Module: app):

// Urban Airship SDK
//compile 'com.urbanairship.android:urbanairship-sdk:8.3.+'
implementation 'com.urbanairship.android:urbanairship-fcm:9.7.1'

Мне также пришлось сделать следующее, чтобы избавиться от некоторых ошибок, которые я изначально видел при использовании implementation 'com.urbanairship.android:urbanairship-fcm:9.7.1':

  1. Установлен `Android SDK Platform 28 (платформы; android-28)
  2. Заменено compileSdkVersion 23 на compileSdkVersion 28 в `build.gradle (Модуль: приложение)

Я также использовал File > Invalidate Caches / Restart... на всякий случай, чтобы убедиться, что все обновилось после того, как я изменил файл build.gradle (Module: app).

Другие вопросы по теме