gpt4 book ai didi

android - 如何在 Android 中检测设备状态离线/在线

转载 作者:太空狗 更新时间:2023-10-29 16:38:11 26 4
gpt4 key购买 nike

我是 Android 菜鸟。我想在网络仪表板上显示设备状态,无论设备处于离线/在线状态。 GCM 对此有帮助吗?或者我应该为此使用什么。

或者我是否应该连续调用任何 Web API 以将手机状态从手机发送到服务器直到手机开机,以便我可以在网络仪表盘上显示手机的“在线”状态?

设备关闭时的离线状态和设备打开时的在线状态

有什么想法吗??

最佳答案

第 1 步 -> 注册广播接收器以检查设备离线/在线状态。

在 Broadcast Receiver 的 onReceive() 方法中,检查网络变化,如果有变化则转到步骤 2。

第 2 步 -> 获取设备状态并调用 Web API 以及 POST 参数“device_status”。

使用以下 API 获取互联网连接状态。

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();
}

关于android - 如何在 Android 中检测设备状态离线/在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23084389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com