2012-04-11 2 views
1

Page Plus에서 사용하고있는 Android 휴대 전화가 있습니다. 장치가 wifi 네트워크에 연결되어 있는지 여부를 원격으로 (Linux 웹 서버에서) 감지하는 가장 좋은 방법을 찾아 내기 위해 노력하고 있습니다.Android Phone의 원격 연결 상태를 확인하십시오.

Wi-Fi에 연결되어 있지 않을 때 Google 음성 계정에서 SMS 전송을 사용하지 않으려하지만 휴대 전화에 데이터 연결이 없으므로 원격으로 트리거해야합니다. 내가 전달 설정 토글 기능을 프로그래밍하는 방법을 알고, 난 그냥 원격으로 안드로이드 장치 와이파이 상태를 감지해야합니다.

휴대 전화의 gtalk 상태를 모니터링하고 안드로이드 클라이언트가 온라인 상태인지 감지하는 등 몇 가지 아이디어를 던집니다. 일종의 일을 할 수는 있지만 일하는 방식은 가장 깨끗합니다. 세계.

추천이나 아이디어? 나는 이것이 정확히 프로그래밍 문제는 아니라는 것을 알고 있지만, 나는 약간의 도움을 원할 것이다!

+0

클라이언트 (전화)에서 코드를 실행할 수 있습니까? – mfrankli

+0

예, 클라이언트에서 코드를 실행할 수 있습니다. 나는 휴대 전화가 wifi 연결 끊김에서 포워딩 설정을 사용 중지하도록 설정했으나 wifi에서 연결을 끊은 후 네트워크 액세스 권한이 없으므로 불가능합니다. – xur17

답변

1

wifi가 연결될 때마다 웹 서버에 일정 시간 간격으로 핑 (ping)하는 백그라운드 서비스를 실행할 수 있습니다. 클라이언트가 "예약 된"체크인을 놓칠 때마다 웹 서버는 전화가 끊긴 것으로 결론을 내리고 실행합니다 어떤 경우라도 원하는 행동을 취하십시오.

내가 간단한 TCP 소켓을 사용하여 서버를 ping하려면

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

This tutorial는 서버 측의 측면을 포함, 더 자세한 예를 가지고있다.

+0

배터리 수명에 어떤 영향이 있습니까? 하나의 핑이 배터리 수명에 큰 영향을 미칩니 까? – xur17

+1

당신은 아마 이것을 더 엄격하게 검사하기위한 실험을 할 수 있지만 wifi에 연결된 동안 분 당 하나의 핑이 배터리 수명에 사소한 영향을 미친다는 것을 상상할 것입니다. wifi가 연결되어있는 동안에는 휴대 전화가 일반적으로 많은 양의 데이터를 보내고받는 것을 고려하면 작은 메시지 하나가 킬러가되지는 않을 것입니다. – mfrankli

+0

재미있는 아이디어가 들리 겠지만 - 분명히 핑을위한 최소한의 데이터 사용량을 원한다. HTTP는 상당한 양의 오버 헤드가 있습니다. 어떤 종류의 맞춤 TCP 연결이 더 합리적입니까? – xur17

관련 문제