适用于 Kindle Fire 的推送通知/C2DM?

发布于 2024-12-20 10:46:44 字数 214 浏览 2 评论 0 原文

AFAIK,推送通知需要 Google 帐户才能工作(它们搭载 GTalk),那么这是否意味着 Kindle Fire 的应用程序如果使用标准 C2DM 方法就注定会失败?

我在 Kindle Fire 常见问题解答或网络上的任何地方都找不到任何有关推送的信息。

AFAIK, push notifications require a Google account to work (they piggyback on GTalk), so does that mean for apps for the Kindle Fire are doomed if they use the standard C2DM approach?

I couldn't find any info on push in the Kindle Fire FAQ or anywhere on the web.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

且行且努力 2024-12-27 10:46:44

据我所知是的。我读到的所有内容都表明亚马逊取消了对 C2DM 的支持。我知道,对吧?如果您或您的用户愿意 root,安装 Google 服务一个选项。

Urban Airship 有一个名为 Helium 的推送服务,据称可以与 Kindle Fire 配合使用。不过我还没有能力尝试。

更新 8/13/2013

还有 Amazon SNS。有一个很棒的博客 主题。

请参阅以下代码片段,了解如何实现接收器(来自 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);
    }
}

As far as I know yes. Everything I have read indicates that Amazon stripped C2DM support out of the Fire. I know right? If you or your users are willing to root it, installing Google services is an option.

Urban Airship has a push service named Helium which purportedly works with Kindle Fire. I have yet to be able to try it though.

Update 8/13/2013

There is also Amazon SNS. There is a great blog on the topic.

See this code snippet for how to implement a receiver ( from the Amazon Web Services blog):

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);
    }
}
开始看清了 2024-12-27 10:46:44

除了 Urban Airship(由 stevebot 提到)之外,还有类似的替代方案:

Parse.com - 我已按照快速入门指南成功将通知推送到 Kindle Fire。非常简单。这是一种分层免费增值模式,即根据数量免费。与 Urban Airship 和 Xtify 相比,定价似乎非常合理。

Xtify - 应该也可以,但我还没有尝试过。它使用 XMPP 连接来发送消息。似乎也是免费增值,具体取决于设备数量(目前称 10K 以下设备作为“开发人员专用”免费)。

或者,ralight 提供了一些很好的信息和资源,用于在相关线程中使用 MQTT 实现您自己的推送:
需要连接 Android 设备到服务器 - C2DM、轮询还是第三种?

In addition to Urban Airship (mentioned by stevebot), there are similar alternatives:

Parse.com - I've successfully pushed a notification to the Kindle Fire following their quick start guide. Very straight-forward. It's a tiered freemium model, i.e., free depending the volume. Pricing seems very reasonable, comparatively to Urban Airship and Xtify.

Xtify - Should also work, but I have yet to try it. It uses an XMPP connection to send messages. Also appears to be freemium, depending on the number of devices (currently says under 10K devices is free as a "developer special").

Alternatively, ralight gives some good information and resources for implementing your own push using MQTT in a related thread:
Android device needs to be connected to server - C2DM, polling or something third?

罗罗贝儿 2024-12-27 10:46:44

我认为您可以通过 Amazon Web Services for Kindle Fire 使用 SNS 进行推送。

http://aws.amazon.com/sns/

I think you can do push using SNS through Amazon Web Services for Kindle Fire.

http://aws.amazon.com/sns/

土豪 2024-12-27 10:46:44

看起来 Kindle Fire 缺少了 Google 的所有内容。我们最好的猜测是,亚马逊不想与谷歌签订合同来访问其专有软件(市场、地图和其他谷歌服务,包括 C2DM)。这有助于解释为什么现在有两个不同的市场应用程序(亚马逊和谷歌)以及人们在现有应用程序中发现的所有问题。

It looks like the Kindle Fire is missing EVERYTHING from Google. Our best guess is that Amazon didn't want to sign a contract with Google to get access to their proprietary software (Market, Maps, and other Google services including C2DM). Which helps explain why there are two distinct market apps now (Amazon and Google) as well as all the issues people are discovering with their existing apps.

奶茶白久 2024-12-27 10:46:44

请注意,Urban Airship 终止了对 Google Android 版 Helium 的支持 - 他们的自定义技术允许向 Kindle 和 NOOK 设备推送通知 (Helium For Google Android Sunset 常见问题解答)

此处 ( Google Cloud Messaging 支持常见问题解答) 他们确实指出:

“我们计划通过 Amazon 的 Amazon Device Messaging (ADM) 支持 Kindle
将来某个时候提供服务。”

Note that Urban Airship ended support for Helium for Google Android - their custom technology that allowed push notifications to Kindle and NOOK devices (Helium For Google Android Sunset FAQ).

Here (Google Cloud Messaging Support FAQ) they do state:

"We plan to support Kindle via Amazon's Amazon Device Messaging (ADM)
service at some point in the future."

jJeQQOZ5 2024-12-27 10:46:44

我只是在研究亚马逊在kindel设备上推送的方式。其 AWS 服务是 简单队列服务 (SQS)。我还没有使用它,但它似乎很好,因为它还允许您发送和安排推送消息 Google Cloud Messaging (GCM) 甚至 Apple 的人。

Amazon 将其服务称为 Amazon Device Messaging (ADM),在该页面上,您可以可以下载SDK并集成API。

即使这个答案很晚(四年后),我希望这能帮助其他开发人员进行研究。

I'm just reseaching for the Amazon's way to push on kindel devices. The AWS service for that is the Simple Queue Service (SQS). I did no use it yet, but it seems to be nice since it allows you to send and schedule push messages also for Google Cloud Messaging (GCM) and even the Apple guys.

Amazon calls his service Amazon Device Messaging (ADM), on that page you can download the SDK and integrate the API.

Even if this answer is late (four years later), I hope this will help other developers for their research.

手心的海 2024-12-27 10:46:44

您不能使用 C2DM 到 Kindle。我不知道为什么 Dule 上面的回答说他可以使用 Parse 推送到 Kindle - 他们的服务是 C2DM 并且他们的文档中没有提到 Kindle 客户端。

Urban Airship 之所以能发挥作用,只是因为他们有自己的客户,这很好,但不是标准的。

You can't use C2DM to Kindle. I don't know why Dule's answer above says he could use Parse to push to Kindle - their service is C2DM and there is no mention of a Kindle client in their docs.

Urban Airship works only because they have their own client, which is fine, but it's not standard.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文