0

У меня есть 2 приложения. Один из них - пример приложения от AWS Mobile Hub, а другой - тестовый проект для тестирования push-уведомлений AWS SNS. Я включил push-приложения из примера приложения в тестовое приложение, но по какой-то причине он не работает, он не получает никаких push-уведомлений от AWS SNS.Android-приложение не получает никакого push-уведомления от AWS SNS

Вещей я скопированная:
Пакет com.amazonaws.mobile и все его файлов.
Библиотеки из файла build.gradle модуля.
Права доступа, получателя и службы из файла манифеста.
PushListenerService класс.

По какой-то причине я до сих пор не получаю никаких push-уведомлений. Вы знаете, что делать?

+0

У вас пробовал следовать за Mobile Hub новые инструкции по интеграции? http://imgur.com/a/s9BaW – donkon

ответ

-1

Вы пробовали выполнить новые инструкции по интеграции AWS Mobile Hub? imgur.com/a/s9BaW

Просто перечисляя несколько вещей, которые, кажется, отсутствуют в списке:

Вам нужно добавить Gradle зависимостей в build.gradle (может меняться)

compile 'com.google.android.gms:play-services-plus:7.8.0' 
compile 'com.amazonaws:aws-android-sdk-sns:2.2.18' 

Укажите Google Services версии в AndroidManifest.xml

<meta-data android:value="@integer/google_play_services_version" /> 
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

Зарегистрировать Intent Receiver для GCM слушать GCM notfications

<receiver 
    android:name="com.google.android.gms.gcm.GcmReceiver" 
    android:exported="true" 
    android:permission="com.google.android.c2dm.permission.SEND" > 
    <intent-filter> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     <category android:name="{com.yourapp.package}" /> 
    </intent-filter> 
</receiver> 

<service 
    android:name=".PushListenerService" 
    android:exported="false" > 
    <intent-filter> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
    </intent-filter> 
</service> 

Зарегистрируйте устройство получать уведомления толчка

final PushManager pushManager = AWSMobileClient.defaultMobileClient() 
    .getPushManager(); 

pushManager.registerDevice(); 

// if registration succeeded. 
if (pushManager.isRegistered()) { 
    pushManager.setPushEnabled(enabled); 
} else { 
    // ... handle error, likely due to no network available ... 
} 

final PushManager pushManager = AWSMobileClient.defaultMobileClient() 
    .getPushManager(); 

pushManager.registerDevice(); 

// if registration succeeded. 
if (pushManager.isRegistered()) { 
    pushManager.setPushEnabled(enabled); 
} else { 
    // ... handle error, likely due to no network available ... 
} 

Регистрация для темы

final PushManager pushManager = AWSMobileClient.defaultMobileClient() 
    .getPushManager(); 

pushManager.subscribeToTopic(pushManager.getDefaultTopic()); 
+0

Я сделал все вышеперечисленное, но я до сих пор не получаю никаких push-уведомлений от приложения ... Кстати, когда я добавил библиотеку 'play-services- плюс' вместо библиотеки 'play-services', которую я уже имел в своем приложении, он сказал, что не может найти' com.google.android.gms.gcm.GcmReceiver'. Вы знаете, может быть, почему так? –

+0

Попытайтесь добавить: compile 'com.google.android.gms: play-services-gcm: 10.0.1' compile 'com.google.android.gms: play-services: 10.0.1' Эти библиотеки работали я без проблем! @IdoNaveh – Fer