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
файла в моем исходном коде:
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>
- 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. Правильно?