您是否尝试过遵循 AWS Mobile Hub 的新集成说明? imgur.com/a/s9BaW
仅列出您列表中似乎缺少的一些内容:
您需要在build.gradle 中添加Gradle 依赖项(版本可能会有所不同)
compile 'com.google.android.gms:play-services-plus:7.8.0'
compile 'com.amazonaws:aws-android-sdk-sns:2.2.18'
为 AndroidManifest.xml 指定 Google 服务版本
<meta-data android:value="@integer/google_play_services_version" />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
注册一个 Intent Receiver for GCM 以收听 GCM 通知
<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());