如何将来自 AWS Mobile Hub 示例项目的推送服务集成到现有的 android 项目中?

Posted

技术标签:

【中文标题】如何将来自 AWS Mobile Hub 示例项目的推送服务集成到现有的 android 项目中?【英文标题】:How to integrate push services from AWS Mobile Hub sample project in an existing android project? 【发布时间】:2016-09-02 09:38:12 【问题描述】:

我使用 AWS Mobile Hub 和用户登录和推送通知服务创建了一个 android 示例项目。

我已下载该项目并通过 Android Studio 打开它,以便从示例项目中获取推送通知所需的文件并将其集成到我现有的 Android 应用中。

我以为会很简单,但后来我发现了这个巨大的文件分支:

很难理解我需要哪些文件和不需要哪些文件。您能否帮我弄清楚我需要将什么导入到现有项目中才能将推送通知集成到我的应用程序中?

【问题讨论】:

【参考方案1】:

您应该将MySampleApp/app/src/main/java/com/amazonaws 的内容逐字复制到您的新项目中,以及AndroidManifest.xml 和build.gradle 和Application.java 的一部分。

要获得完整的说明,我建议您通过 Mobile Hub 控制台 > 项目名称 > 构建 > 选择 Android > 在左侧转到开发 > 用作示例。

您将找到您的 android 项目所需的所有说明

【讨论】:

第一种方法我仍然没有收到推送通知,也找不到任何用作示例按钮【参考方案2】:

“PushListenerService”类基本上是一个有用的示例类,其中发生了魔法。因此,请保留支持该类的每个文件。

private static void generateNotification(Context context, final String message)

是显示通知消息的内容。

另一个重要的注意事项是如何获取用户的设备端点值。这可以使用“PushManager”类获得。

String endpoint = pushManager.getEndpointArn();

设备的端点 ARN 可帮助您向该设备发送直接通知。

PublishRequest publishRequest = new PublishRequest();
publishRequest.setMessage(message);
publishRequest.setSubject(subject);
publishRequest.withTargetArn(endpoint); //This can also be a "topic" ARN
snsClient.publish(publishRequest);

AWS 的人做得非常好。非常感谢他们! :D

没有简单的出路。慢慢来,浏览与您要实现的 AWS 服务相关的类中的所有代码。祝你好运!

顺便说一句,当您向测试设备发送通知时,请确保您的应用未在测试设备上打开,否则您将看不到通知,因为您的应用已经在运行。我注意到这是一种默认行为。

【讨论】:

以上是关于如何将来自 AWS Mobile Hub 示例项目的推送服务集成到现有的 android 项目中?的主要内容,如果未能解决你的问题,请参考以下文章

将图像从公共 Docker Hub 拉取到 AWS Elastic Beanstalk 多个容器

Kindle Fire 推送通知示例应用程序

如何将驻留在账户 A 中的 s3 存储桶的访问权限授予来自多个 aws 账户的不同 iam 用户?

如何将 AWS Amplify 与 Sapper 一起使用?

AWS - 防火墙管理器 - WAF 规则如何阻止来自 IP 地址的请求(无主机名)?

在 AWS 中,如何将 Web 服务器安全组配置为仅接受来自 AWS 中的负载均衡器的流量?