문제

내 앱은 인터넷에 액세스하고 Wi -Fi 또는 Carrier Data Network를 통해 연결되어 있는지 여부를 감지하고 싶습니다.

애플은 그 "도달 가능성"에 대한 모범을 보였습니다.

https://developer.apple.com/iphone/library/samplecode/reachability/

캐리어 네트워크가 아닌 WiFi를 감지한다고 생각합니다.

누구든지 말해 줄 수 있습니까? 연결이 있는지 여부를 감지하기 위해 최선을 다해야합니다 (모든 유형의 연결)

당신의 도움에 감사드립니다!

도움이 되었습니까?

해결책

그 샘플은 정확히 당신이 필요한 것입니다.

도달 범위를보십시오 .m. 연결이 있는지 여부를 알려 드린 다음 어떤 종류의 연결을 가지고 있는지 알려줍니다.

다른 팁

연결되어 있는지 여부와 연결된 경우 사용중인 연결 유형을 감지하려면 도달 가능성 예제가 과잉 일 수 있습니다. 실제로이 예제에는 상태 변경 사항을 알려주는 콜백 설정 및 사용 방법을 보여주는 코드도 포함되어 있습니다.

연결되어 있는지 아닌지 정확히 알려주는 소스 코드 스 니펫과 사용중인 연결 유형의 경우 유사한 질문에 대한 내 답변을보고 싶을 수도 있습니다. 여기.

웹 리소스에 요청하면 iPhone은 찾은 모든 연결을 사용하고 Wi -Fi를 사용하고 (우선 순위가 높음) Wi -Fi가 연결되어 있지 않으면 캐리어 네트워크를 사용합니다. 캐리어 네트워크를 방지하는 코드 설정은 없습니다.

해야 할 일은 다음과 같습니다.

  • 테스트 장소에서 신호를 확인하십시오.
  • Safari에서 도달하려는 링크를 확인하여 문제가있는 앱이 아닌지 확인하십시오.
  • 링크가 Safari에서 작동하지 않는 경우 (캐리어 네트워크 사용) 운송 업체 지원에 문의하십시오.

이러한 기술은 유용하지만 인터넷으로가는 장치의 경로는 여러 가지 유형의 연결로 구성 될 수 있습니다. 예를 들어, iPhone 또는 iPod Touch는 Wi -Fi를 사용하여 모바일 핫스팟에 연결하고 있으며 자체 3G 무선 연결이 있습니다. 따라서 WiFi 연결의 존재는 3G보다 높은 대역폭을 의미한다고 가정하는 것은 안전하지 않습니다.

도달 가능성 (Apple의 샘플 코드 및 기타 사람들의 유사한 코드 및 기본 SCNETWorkErchability는 인터넷 액세스가 없거나 WiFi를 통해 인터넷에 액세스 할 수 있거나 모바일 데이터를 통해 인터넷에 액세스 할 수 있음을 알려줍니다.

Wi -Fi와 모바일 데이터가 모두 있으면 "Wi -Fi"를 알려줍니다. Wi -Fi가있을 때 모바일 데이터를 사용할 수 있다는 것을 알 수있는 방법이 없습니다. (Wi -Fi가 없을 때 모바일 데이터를 사용할 수 있다는 것을 쉽게 알 수 있습니다). 비행기 모드가 켜져 있는지 확인할 수 없습니다 (WiFi 및 모바일 데이터가 꺼질 수 있음).

사용 가능한 WiFi는 다운로드가 모바일 데이터가 아닌 WiFi를 사용한다고 보장하지 않습니다. 집에서 다운로드를 시작하고 1 분 후에 떠나고 Wi -Fi는 사라지고 iOS는 3G를 통해 행복하게 다운로드 할 것입니다. 다운로드 호출에서 깃발을 설정하여 3G를 허용하지 않습니다. 오류 코드는 -1009 = 인터넷 액세스가 없으며 3G를 사용할 수 있다고 언급하지 않았습니다.

cttelephonynetworkInfo를 사용하여 장치에있는 것을 알 수 있습니다. ~할 수 있었다 모바일 데이터 (모바일 데이터가없는 iPod Touch 또는 iPad가 아닌 장치에 SIM이 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top