Kindle Fire 的推送通知/C2DM?
Posted
技术标签:
【中文标题】Kindle Fire 的推送通知/C2DM?【英文标题】:Push notifications / C2DM for Kindle Fire? 【发布时间】:2012-01-16 10:06:43 【问题描述】:AFAIK,推送通知需要 Google 帐户才能工作(它们搭载 GTalk),那么这是否意味着 Kindle Fire 的应用程序如果使用标准 C2DM 方法就注定失败?
我在Kindle Fire FAQ 或网络上的任何地方都找不到任何关于推送的信息。
【问题讨论】:
【参考方案1】:据我所知是的。我所读到的所有内容都表明,亚马逊从 Fire 中剥离了 C2DM 支持。我知道,对吧?如果您或您的用户愿意根它,installing Google services 是一个选项。
Urban Airship 有一个名为 Helium 的推送服务,据称可以与 Kindle Fire 配合使用。不过我还没有尝试过。
2013 年 8 月 13 日更新
还有Amazon SNS。该主题有great blog。
请参阅此代码 sn-p 了解如何实现接收器(来自 Amazon Web Services 博客):
public class ExternalReceiver extends BroadcastReceiver
@Override
public void onReceive(Context context, Intent intent)
Log.i("ExternalReceiver","onReceive");
Bundle extras = intent.getExtras();
StringBuilder payload = new StringBuilder();
for(String key : extras.keySet())
payload.append(String.format("%s=%s", key, extras.getString(key)) + '\n');
Intent newIntent = new Intent();
newIntent.setClass(context, androidMobilePushApp.class);
newIntent.putExtra(context.getString(R.string.msg_field), payload.toString());
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(newIntent);
【讨论】:
您知道 GCM 在 Kindle Fire 上是否也无法使用吗? GCM 是 Google 的 C2DM 替代品。 @bovine 不,Kindle Fire 仍然不支持包含 GCM 的 GMS(谷歌移动服务) @stevebot 是否有可能今天 Kindle Fire 仍然不支持 GMS? :S【参考方案2】:除了 Urban Airship(stevebot 提到)之外,还有类似的替代方案:
Parse.com - 我已经按照他们的快速入门指南成功地向 Kindle Fire 推送了通知。非常直截了当。这是一个分层的免费增值模式,即免费取决于数量。与 Urban Airship 和 Xtify 相比,定价似乎非常合理。
Xtify - 应该也可以,但我还没有尝试过。它使用 XMPP 连接来发送消息。也似乎是免费增值,具体取决于设备的数量(目前说低于 10K 的设备作为“开发者特价”是免费的)。
另外,ralight 提供了一些很好的信息和资源,用于在相关线程中使用 MQTT 实现您自己的推送: Android device needs to be connected to server - C2DM, polling or something third?
【讨论】:
【参考方案3】:我认为您可以通过 Amazon Web Services for Kindle Fire 使用 SNS 进行推送。
http://aws.amazon.com/sns/
【讨论】:
+1 有帮助的答案,另一种通知方式。 虽然这似乎是对 SNS 的明显使用,但我自己的研究似乎表明目前这实际上是不可能的。您可以将 SNS 与 SMS、电子邮件、SQS 或 HTTP(S) 挂钩,但您无法在移动设备上直接订阅和接收消息而无需轮询。【参考方案4】:Kindle Fire 似乎缺少 Google 的所有功能。我们最好的猜测是,亚马逊不想与谷歌签订合同来访问他们的专有软件(市场、地图和其他谷歌服务,包括 C2DM)。这有助于解释为什么现在有两个截然不同的市场应用(亚马逊和谷歌)以及人们在现有应用中发现的所有问题。
【讨论】:
【参考方案5】:请注意,Urban Airship 终止了对 Helium for Google Android 的支持——他们的自定义技术允许将通知推送到 Kindle 和 NOOK 设备(Helium For Google Android Sunset FAQ)。
Here (Google Cloud Messaging Support FAQ)他们确实声明:
“我们计划通过亚马逊的亚马逊设备消息 (ADM) 支持 Kindle 在未来的某个时间点提供服务。”
【讨论】:
【参考方案6】:我只是在研究亚马逊推广 Kindel 设备的方式。 AWS 服务就是 Simple Queue Service (SQS)。我还没有使用它,但它似乎很好,因为它允许您发送和安排推送消息也为Google Cloud Messaging (GCM) 甚至苹果公司的家伙。
亚马逊调用他的服务Amazon Device Messaging (ADM),在那个页面你可以下载SDK并集成API。
即使这个答案迟了(四年后),我希望这对其他开发人员的研究有所帮助。
【讨论】:
【参考方案7】:您不能将 C2DM 用于 Kindle。我不知道为什么 Dule 上面的回答说他可以使用 Parse 推送到 Kindle - 他们的服务是 C2DM,并且在他们的文档中没有提到 Kindle 客户端。
Urban Airship 之所以有效,只是因为他们有自己的客户,这很好,但不是标准的。
【讨论】:
Parse 未使用 C2DM,来源:blog.parse.com/2011/07/25/android-push-notifications。 我实际上已经使用 Parse 成功地推送到了 Kindle Fire,所以我可以肯定地确认它有效,并且您关于使用 C2DM 进行 Parse 的信息不正确。你尝试时它不起作用吗?以上是关于Kindle Fire 的推送通知/C2DM?的主要内容,如果未能解决你的问题,请参考以下文章