iphone SDK detectar rede Wifi e Carrier
-
06-07-2019 - |
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!
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).