远程检测Android手机的连接状态

远程检测Android手机的连接状态,android,android-wifi,google-voice,Android,Android Wifi,Google Voice,我有一部安卓手机,我正在Page Plus上使用。我试图找出远程检测(从linux Web服务器)设备是否连接到wifi网络的最佳方法 我想在未连接到wifi时禁用我的google voice帐户上的短信转发,但由于我的手机没有数据连接,因此必须远程触发。我知道如何编程转发设置切换功能,我只需要远程检测android设备的wifi状态 我提出了一些想法,比如监控手机的gtalk状态,检测android客户端是否在线——我可以让它正常工作,但这不是世界上最干净的方法 有什么建议或想法吗?我知道这不

我有一部安卓手机,我正在Page Plus上使用。我试图找出远程检测(从linux Web服务器)设备是否连接到wifi网络的最佳方法

我想在未连接到wifi时禁用我的google voice帐户上的短信转发,但由于我的手机没有数据连接,因此必须远程触发。我知道如何编程转发设置切换功能,我只需要远程检测android设备的wifi状态

我提出了一些想法,比如监控手机的gtalk状态,检测android客户端是否在线——我可以让它正常工作,但这不是世界上最干净的方法


有什么建议或想法吗?我知道这不完全是一个编程问题,但我希望能得到一些帮助

您可以在Android客户端上运行后台服务,每当连接wifi时,该服务会以固定的时间间隔ping Web服务器-每当客户端错过“预定”的签入,Web服务器就会断定手机已断开连接,并在这种情况下执行您想要的任何操作

要ping服务器,我将使用一个简单的TCP套接字:

// you could use IP address instead of the hostname if you don't have a domain name
// PORT_NUM is some value shared between the server and the client e.g. 3456
Socket sock = new Socket("mywebserverurl.com", PORT_NUM);
OutputStream out = sock.getOutputStream();
String data = getDataServerNeeds();
out.write(data.getBytes());
sock.close();

有一个更详细的示例,包括服务器端方面。

您可以在Android客户端上运行后台服务,每当连接wifi时,以固定的时间间隔ping Web服务器-每当客户端错过“预定”签入时,Web服务器就断定手机已断开连接,在这种情况下,执行您想要的任何操作

要ping服务器,我将使用一个简单的TCP套接字:

// you could use IP address instead of the hostname if you don't have a domain name
// PORT_NUM is some value shared between the server and the client e.g. 3456
Socket sock = new Socket("mywebserverurl.com", PORT_NUM);
OutputStream out = sock.getOutputStream();
String data = getDataServerNeeds();
out.write(data.getBytes());
sock.close();

有一个更详细的示例,包括服务器端方面。

您能够在客户端(电话)上运行代码吗?是的,我能够在客户端上运行代码。我只想让手机在断开wifi连接时禁用转发设置本身,但这是不可能的,因为断开wifi连接后我无法访问网络。你能在客户端(手机)上运行代码吗?是的,我能在客户端上运行代码。我只想让手机在断开wifi连接时自行禁用转发设置,但这是不可能的,因为断开wifi连接后我无法访问网络。这会对电池寿命产生什么影响?每分钟一次ping会对电池寿命产生很大影响吗?你可能会运行一个实验来更严格地检查这一点,但我认为连接到wifi时每分钟一次ping对电池寿命的影响很小。考虑到WiFi是连接的,你的手机通常发送/接收大量的数据,所以一个微小的消息可能不会是杀手。听起来像一个有趣的想法-显然我想要最小的数据使用的ping -任何想法的最好的方式来做到这一点。HTTP会有相当大的开销——某种自定义tcp连接更有意义吗?我只需要打开一个tcp套接字到服务器。如果服务器需要来自客户端的信息,那么您可以发送最小的信息。我将在答案中编辑一个代码示例。感谢您提供的代码-我正在努力将所有内容结合在一起。我会在某个港口报告这对电池的影响。这对电池寿命有什么影响?每分钟一次ping会对电池寿命产生很大影响吗?你可能会运行一个实验来更严格地检查这一点,但我认为连接到wifi时每分钟一次ping对电池寿命的影响很小。考虑到WiFi是连接的,你的手机通常发送/接收大量的数据,所以一个微小的消息可能不会是杀手。听起来像一个有趣的想法-显然我想要最小的数据使用的ping -任何想法的最好的方式来做到这一点。HTTP会有相当大的开销——某种自定义tcp连接更有意义吗?我只需要打开一个tcp套接字到服务器。如果服务器需要来自客户端的信息,那么您可以发送最小的信息。我将在答案中编辑一个代码示例。感谢您提供的代码-我正在努力将所有内容结合在一起。我会试着在某个端口报告这对电池的影响。