如何使用GCM获取Android设备状态(离线或在线)?

我在我的应用程序中实现了GCM,推送通知工作正常吗?但我有具体要求我(我的服务器)想知道 Android设备状态(即在线或离线).

题:
1.他们可以通过发送GCM消息或其他东西来检查Android设备状态(离线或在线)吗?

>我想到的唯一选择是在Android设备中“创建”后台服务,它将创建与服务器的正在进行的套接字连接,以在预定义的时间间隔(5/10分钟间隔)更新状态.但汇集@ fix时间间隔并不是最好的解决方案 – 这也是寻找其他替代方案的原因.

任何指针或帮助将不胜感激.

谢谢.

解决方法

如果您的意思是想知道您的电话网络是打开还是关闭,那么我认为以下代码可能对您有所帮助.

这将告诉您手机处于Air Plane模式,表示网络已关闭或打开.

private static boolean isAirplaneModeOn(Context context) {

   return Settings.System.getInt(context.getContentResolver(),Settings.System.AIRPLANE_MODE_ON,0) != 0;

}

Bellow代码检查天气是否与imternet相关.

private boolean isNetworkConnected() {
  ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo ni = cm.getActiveNetworkInfo();
  if (ni == null) {
   // There are no active networks.
   return false;
  } else
   return true;
 }

在清单中

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

相关文章

文章浏览阅读8.8k次,点赞9次,收藏20次。本文操作环境:win1...
文章浏览阅读1.2w次,点赞15次,收藏69次。实现目的:由main...
文章浏览阅读3.8w次。前言:最近在找Android上的全局代理软件...
文章浏览阅读2.5w次,点赞17次,收藏6次。创建项目后,运行项...
文章浏览阅读8.9w次,点赞4次,收藏43次。前言:在Android上...
文章浏览阅读1.1w次,点赞4次,收藏17次。Android Studio提供...