Pergunta

meu aplicativo acessa a internet e eu só quero para detectar se há uma conexão tanto via Wi-Fi ou via rede de dados transportador ou não

A Apple fez um exemplo para que "acessibilidade"

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

Eu acho que apenas detecta o wifi e não a rede da operadora

Alguém pode me dizer, o que é o melhor a ser feito para detectar se há uma conexão (qualquer tipo de conexão)

Apreciar ajuda ur!

Foi útil?

Solução

Essa amostra é exatamente o que você precisa.

Olhe para Reachability.m. ele vai dizer se você tem qualquer ligação, e em seguida, dizer-lhe que tipo de conexão que você tem.

Outras dicas

O exemplo a acessibilidade pode ser um exagero se você quiser apenas para detectar se você está ou não conectado, e que tipo de conexão que você está usando, se você está conectado. Na verdade, o exemplo também contém código mostrando como configurar e usar retornos de chamada que notificá-lo de alterações de estado.

Para um trecho de código fonte dizendo exatamente se você estiver conectado ou não, e que tipo de conexão que você está usando, você pode querer dar uma olhada na minha resposta a uma pergunta semelhante, postou aqui .

Uma vez que você faz um pedido a qualquer recurso web, o iPhone usa qualquer conexão que encontra, ele usa wi-fi (como uma prioridade mais alta), e se wifi não está ligado ele usa rede da operadora. Não há configurações de código isso é impedindo rede da operadora.

Tudo que você tem que fazer:

  • Verifique o sinal no local de teste.
  • Verifique o link que você está tentando alcançar em safari, para se certificar de que não é o seu aplicativo que tem o problema.
  • Contacte o suporte transportadora se o link não está funcionando no safari (com certeza usando a rede da operadora)

Estas técnicas são úteis, mas tenha em mente que o caminho do dispositivo à Internet pode consistir de vários tipos diferentes de conexões. Por exemplo, um iPhone ou iPod touch pode estar usando Wi-Fi para se conectar a um hotspot móvel, que por sua vez tem a sua própria conexão sem fio 3G. Portanto, não é seguro assumir que a presença de uma conexão WiFi implica maior largura de banda do que 3G.

Acessibilidade (código de exemplo tanto da Apple, e um código semelhante de outras pessoas, ea SCNetworkReachability subjacente irá dizer-lhe que ou não há acesso à Internet, ou que você vai ter acesso à Internet através de Wi-Fi, ou que você vai ter acesso à Internet através do celular dados.

Se você tem tanto de dados móveis WiFi e disponível, ele vai dizer "WiFi". Não há nenhuma maneira de descobrir o que os dados móvel está disponível quando você tem WiFi. (Você pode facilmente descobrir que dados móveis está disponível quando não há Wi-Fi). Você não pode descobrir se o modo de avião está ligado (o que seria diferente de Wi-Fi e dados móveis desligados).

WiFi disponíveis não garante que um download irá utilizar dados móveis WiFi e não. Você pode começar um download em casa, deixe um minuto depois, WiFi desaparece, e iOS terá todo o prazer continuar o download através de 3G. Você pode definir um sinalizador na chamada de download para não permitir 3G. O código de erro será -1009 = Sem acesso à internet, não menciona que a 3G teria sido disponíveis.

Usando CTTelephonyNetworkInfo você pode descobrir que você está em um dispositivo que poderia tem dados móveis (não um iPod Touch ou iPad sem dados móveis, e há um SIM no dispositivo).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top