我是Android的noob。无论设备是否处于离线/在线状态,我都希望在Web仪表板上显示设备状态。 GCM对此有帮助吗?或者我应该为此使用什么。如何检测Android中的离线/在线状态的设备状态
或者我应该打电话给任何Web API连续发送电话状态从手机到服务器,直到手机处于打开状态,以便我可以在这里显示手机在网络仪表板的“在线”状态?当你的设备是OFF &联机状态时,你的设备
任何想法
脱机状态?
我是Android的noob。无论设备是否处于离线/在线状态,我都希望在Web仪表板上显示设备状态。 GCM对此有帮助吗?或者我应该为此使用什么。如何检测Android中的离线/在线状态的设备状态
或者我应该打电话给任何Web API连续发送电话状态从手机到服务器,直到手机处于打开状态,以便我可以在这里显示手机在网络仪表板的“在线”状态?当你的设备是OFF &联机状态时,你的设备
任何想法
脱机状态?
使用此方法: 您不应该发送ping到服务器。服务器应该发送ping一段时间后到设备并且设备应该回复。如果设备没有回复,则表示用户处于离线状态。基本上你需要创建与服务器和交换平
同样的事情的Openfire服务器
如何impliment呢?假设我有1000个用户,我是否需要向他们发送“心跳”?以及何时这样做?每分钟??,其他聊天应用程序立即提供状态IMMEDIATLY !! –
public boolean isOnline() {
ConnectivityManager conMgr = (ConnectivityManager) getActivity()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMgr.getActiveNetworkInfo();
if (netInfo == null || !netInfo.isConnected() || !netInfo.isAvailable()) {
/*
* Toast.makeText(getActivity(), "No Internet connection!",
* Toast.LENGTH_LONG).show();
*/
return false;
}
return true;
}
上实现套接字连接,并这样称呼它
if (isOnline()) {
//code if online
} else {
AlertDialog alertDialog = new AlertDialog.Builder(getActivity())
.create();
alertDialog.setTitle("Info");
alertDialog
.setMessage("Internet Not Available, Cross Check Your Internet Connectivity and Try Again!");
alertDialog.show();
}
这与我的问题无关。你应该更新你的答案 – Mick
第1步 - >注册广播接收器在线/在线检查设备状态。
里面的广播接收机的的onReceive()方法,检查网络的变化,如果有变化转到步骤2。
第2步 - >获取的设备状态,并与沿着调用web API POST参数“device_status”。
使用下面的API获取Internet连接状态。
public boolean testNetwork(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if ((connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) != null && connManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected())
|| (connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null &&
connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.isConnected())) {
return true;
} else {
return false;
}
}
BroadcastReceiver networkStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
boolean connectivity = CommonUtils.getInstance().testNetwork(
BaseActivity.this);
if (!connectivity) {
// write your code
} else {
//write your code
}
}
};
IntentFilter filter = new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION);
try {
registerReceiver(networkStateReceiver, filter);
} catch (Exception e) {
e.printStackTrace();
}
这与我的问题无关,你应该更新你的答案 – Mick
与任何Jabber服务器一起实现XMPP协议。 它给你正确的信息,因为它的建立是为了使下面
GCM求救使用链接离线/在线系统
会尽快在这里工作,因为手机收到GCM消息做出请求回到服务器,我在线和接收消息,否则离线 –
@ user1799320感谢这就是我正在寻找,尼斯+1 – Mick