我在我的应用程序中实现了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" />