【问题标题】:Check if android device is online from server检查android设备是否从服务器在线
【发布时间】:2018-04-18 10:51:19
【问题描述】:

我在服务器上有一个向用户发送短信或电报消息的脚本。我想在用户离线时发送短信并在用户在线时发送电报消息。

有什么方法可以从我的服务器上检测 android 用户是否在线(可能向已经在运行的某个应用发送请求?)。

请注意,如有必要,用户愿意共享一些凭据。

Android 操作系统版本:Api 21+

【问题讨论】:

  • 你写的“设备在线”到底是什么意思?
  • @Henry 设备已连接到互联网,以便它可以接收电报消息
  • 据我所知,这是不可能的。您必须安装客户端应用程序才能实现。
  • 您的代码应该在此设备上运行。即您需要一个可以与服务器通信的应用程序。
  • 我通常做的是在 Android 中设置一个计时器,每 X 分钟/小时触发一次,向我的 PHP 脚本发出 POST 请求。这个脚本只是用当前时间戳更新表中的一列,所以我知道设备上次在线的时间。如果应用定时器设置为10分钟,并且当前时间与数据库中的时间戳相差大于此时间,我认为设备处于离线状态。

标签: android android-service built-in android-background


【解决方案1】:

好吧,我创建了自己的应用程序。:

  1. 我使用 Firebase 云消息传递从我的应用服务器向设备发送通知(因为它是 lightweight and based on event-driven model)。顺便说一句,telegram 使用的是 fcm 的弟弟 gcm。
  2. 我仅从我的应用服务器向我的应用发送数据消息(仅有效负载),以便我的应用即使在if it is in background 上也能收到通知通知。

  3. 当应用收到通知时,它会发送upstream message,以便服务器知道用户已收到消息。

  4. 如果服务器在 5-10 秒内没有收到用户的响应,那么用户很可能处于离线状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2021-11-19
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2017-09-13
    相关资源
    最近更新 更多