2010-10-19 32 views
4

Je dois détecter la capacité 4G de l'appareil.Détection d'un périphérique compatible 4G

Comment puis-je faire cela?

Merci pour tous les conseils.

+0

On dirait que vous devriez repenser votre conception si vous comptez sur 4g. Pourquoi devez-vous exactement détecter les appareils 4G? – Falmarri

+0

Eh bien, c'est une exigence qui vient des cercles supérieurs ... Je dois juste le faire de cette façon. – user289463

Répondre

1

4G n'est pas quelque chose que vous pouvez "détecter", car 4G est un terme marketing, pas un terme technique.

Vous pouvez détecter si une connexion établie est WiMAX en utilisant ConnectivityManager. Je ne suis pas au courant d'Android supportant d'autres types de connectivité qui sont commercialisés spécifiquement en tant que 4G.

+0

Oui, c'est ce que je leur ai dit aussi. Sans succès :) – user289463

1

J'ai le même besoin. Ce que vous voulez vraiment, c'est la bande passante actuelle. Vous obtenez cette information du WiFi, mais pas mobile. Donc, la meilleure chose que je suis venu avec était de détecter si l'appareil est sur 4G ou non. Malheureusement, ce n'est pas si simple. Outre le WiMAX, vous pouvez vérifier si l'appareil dispose d'une connexion mobile à l'aide du ConnectivityManager. Si vous détectez un type de ConnectivityManager.TYPE_MOBILE, vous vérifiez ensuite le sous-type. Si le sous-type est TelephonyManager.NETWORK_TYPE_LTE ou TelephonyManager.NETWORK_TYPE_EHRPD, le dispositif est 4G capable.

Si le réseau actif est sous-type TelephonyManager.NETWORK_TYPE_LTE, alors vous êtes sur 4G (mais je n'ai pas eu l'occasion de le vérifier). Si vous détectez TelephonyManager.NETWORK_TYPE_EHRPD, vous n'avez aucune idée si vous êtes sur 3G ou 4G ... au moins, je n'ai pas encore pu détecter la différence.

Il peut y avoir d'autres sous-types qui indiquent un périphérique compatible 4G, mais je ne les ai pas vérifiés empiriquement.

Ce n'est certainement pas une réponse définitive, mais j'espère que cela aide.