【问题标题】:Waking Android over network通过网络唤醒 Android
【发布时间】:2012-03-05 23:06:07
【问题描述】:

我是 Android 编程的新手,但我一直在深入研究 SDK。我正在尝试创建一个应用程序,它允许我通过通过网络发送的消息唤醒手机。

理想情况下,我的电脑上会有一个 java 程序,它有一个按钮,我可以按下它来唤醒机器人。我读过 3g 套接字可以做到这一点,但鉴于大多数提供商都使用 NAT,这似乎不是一个好的路线。

我不想让手机使用唤醒锁继续运行,因为这似乎会缩短电池寿命。有没有办法让机器人在传入的网络事件中唤醒?如果不是,您认为解决这个问题的最佳方法是什么?

【问题讨论】:

    标签: android sdk


    【解决方案1】:

    您也可以使用 C2DM 消息传递。您可以在收到 C2DM 消息时启动唤醒锁,执行您需要的操作,然后释放锁。

    C2DM Documentation

    【讨论】:

    • 这很漂亮,不知道。不过,OP 需要为此设置自己的第三方服务器,对吗?
    • C2DM 可能并不可靠。我没有任何个人经验。我知道谷歌声明C2DM makes no guarantees about delivery or the order of messages.
    • 我使用它,它非常可靠。这是谷歌用来与设备对话以获取他们自己的服务的方式。没有什么是 100% 可靠的,因为移动网络连接如此混乱。
    • @koopaking3 是的,他需要一个服务器来向设备发起 C2DM 消息。显然,一旦他收到 C2DM,他会做什么。
    【解决方案2】:

    我能想到的唯一方法是创建一个BroadcastReceiver 并将其注册为SMS_RECIEVED,而不是向设备发送一条带有您选择的唯一标识符的短信。 BroadcastReceiver 将读取传入的 SMS,如果找到唯一标识符,它将唤醒锁定设备并执行任何工作(您可以在 Service 中处理此问题)。如果你想真正唤醒设备屏幕,这是一个很好的话题,但是here is one post on it。完成工作后,如果您不希望它弄乱收件箱,您可以 delete the SMS。请注意,您需要 Manifest 中的 READ_SMSRECEIVE_SMS 权限。

    遗憾的是,这不如酷炫的 LAN 唤醒类型功能优雅,但它应该可以工作。

    如果您需要澄清或示例,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多