7
votes

Comment déterminer si l'utilisateur est sur Edge ou 3G sur iPhone

Bien qu'il soit relativement simple de déterminer si un iPhone est sur wifi ou un réseau de données programmatiquement dans votre application, je ne peux pas comprendre un moyen de déterminer si l'iPhone est à bord ou 3G.

Quelqu'un découvre un moyen de déterminer cela?

Remarque: ne s'inquiétait pas des politiques d'acceptation des Apple Appstore, cela ne me dérange pas de faire quelque chose de hacky dans mon application. (Les iPhones ne devraient pas avoir à être jailbroken cependant)


1 commentaires

Je cherche également la réponse à cette question. Si vous êtes capable de trouver une solution, veuillez le poster ici. Merci!


4 Réponses :


4
votes

L'iPhone ne fournit pas ce type d'informations aux développeurs par programme. Le mieux que vous puissiez espérer, c'est déterminer si une connexion à un hôte donné devra être acheminée sur un réseau de cellules - voir le SCNetworkability Référence et accessibilité projet pour plus.


0 commentaires

1
votes

En supposant que la réponse par Tim est correcte, une manière dont vous pouvez dire si l'utilisateur se trouve sur 3G ou Edge, vous pouvez tester la vitesse de la connexion en démarrant une minuterie ayant l'application téléchargée du fichier sur le Web et calculez la vitesse , vous devriez être capable de dire s'ils sont sur 3G ou Edge par la diffrence des vitesses.


2 commentaires

Ce n'est pas toujours fiable - une très mauvaise connexion 3G peut avoir le même type de débit qu'une connexion de pointe. Ce serait plus de devinette que tout. En outre, il existe d'autres indicateurs en plus de la vitesse; Une autre grande différence entre les connexions est le temps nécessaire au premier paquet de réponses (EDGE tend à gagner ici).


Mais l'avantage des suppositions basés sur mesurés, c'est que même si vous pensez que vous êtes sur le bord, mais vraiment sur 3G, vous allez probablement faire la bonne chose à utiliser un transfert de bande passante inférieur si la vitesse de connexion 3G est aussi lente que le bord aurait été.



-3
votes

Une manière dont vous pouvez détecter l'iPhone 2G est sûr de regarder le nom du périphérique signalé par le système d'exploitation xxx

la valeur de retour que vous recherchez est "iphone1,1" à indiqué iPhone 2G. Combinez ceci avec le projet d'accessibilité pour indiquer quand ils sont sur un réseau de cellules et vous avez 1 avenue pour vous garantir qu'ils sont sur une connexion Edge


2 commentaires

3G ne veut pas dire "iPhone 3G" dans ce cas


n'était pas destiné à dire iPhone 3G. Regardez la déclaration. "Garantie qu'ils sont sur le bord avec iPhone 2G" ne dit rien sur iPhone 3G.



0
votes

Essayez de le vérifier à partir de la barre d'état: xxx

et les touches de valeur que j'ai trouvées jusqu'à présent: xxx


0 commentaires