Обновление библиотеки UrbanAirship с 8.3.2 до 9.0.0 - PullRequest
0 голосов
/ 25 апреля 2019

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

Библиотека UrbanAirship 8.x до 9.0.0

GCM

Все классы GCM были перемещены в пакет com.urbanairship.push.gcm.Если вы вручную добавили GcmPushReceiver или UAInstanceIDListenerService в манифест, обновите записи.

Я обнаружил два 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 \ middleates \ 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. Правильно?

1 Ответ

0 голосов
/ 30 апреля 2019

Теперь я использую это в моем 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 (Модуль: приложение)

enter image description here enter image description here

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

...