2011-12-14 3 views
2

나는 webservices를 호출하는 안드로이드 응용 프로그램을 개발 중입니다. 내 문제는 내가 webservice에 전화를 걸고 wifi 또는 GPRS 강도가 약한 경우 응용 프로그램을 강제 종료하는 것입니다. Wi-Fi 또는 GPRS 신호 강도가 강하거나 약한 경우 어떻게 감지합니까?와이파이 또는 GPRS 신호 강도를 감지하는 방법이 강하거나 약함

+0

이를 탐지하는 점은 무엇입니까 ? 오류를 잘 살펴보고 수정/처리 방법을 찾아내는 것이 좋습니다. – THelper

+0

Wifi 또는 GPRS 신호 강도가 강한 경우에만 webservices를 호출하고 싶습니다 .Wifi 또는 GPRS 신호 강도가 약한 경우 "인터넷 연결이 약함"이라는 메시지가 나타납니다. –

+0

강도를 확인한 직후 신호가 떨어지면 어떻게됩니까? ? – THelper

답변

2

먼저 매니페스트에 <uses-permission> for ACCESS_WIFI_STATE이 있는지 확인하십시오. 나는 성공적으로받은 경우

wifi.startScan(); 

다음 :

둘째, 나는 하나의 연결에 대한 알림에 대한 모르겠지만, 라디오가보고있는 모든 알림을 얻기 위해, 당신은 스캔을 시작할 수 있습니다 결과, 나는 IntentFilter에서 WifiManager.SCAN_RESULTS_AVAILABLE_ACTION을 사용했습니다.

그런 다음 수신기에서 신호 강도가 포함 된 WifiManager 개체의 getScanResults()을 사용합니다.

이 방법으로 중지하려면 unregisterRecever()를 호출하면됩니다 (참조 할 수 있도록 유지하려고합니다). 필자는 스캐닝 코드가 현재 연결을 확인하기 위해 수정할 수 있는지 직접 테스트하지는 않았지만 많은 결과가 있음을 알고 있습니다. Wi-Fi 신호가 자주 빠르게 바뀝니다. 단일 연결을 모니터링하는 경우, 검색 결과를 필터링하고 장치가 현재 연결되어있는 장치를 검색 할 수도 있습니다.

조금 도움이 되었기를 바랍니다.

Android wifi's signal strength

Android: How to monitor WiFi signal strength

관련 문제