IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Contrôler l'accès à Internet


Sujet :

Android

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Contrôler l'accès à Internet
    Bonjour à tous,
    Je désire contrôler si le téléphone a accès à Internet (3G ou Wifi).

    Mon appli doit se connecter à Internet et je voudrais qu'elle vérifie avant de se lancer si le téléphone a accès à Internet.

    suis-je sur une bonne piste ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public boolean Online() {
                ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo netInfo = cm.getActiveNetworkInfo();
                if (netInfo != null && netInfo.isConnectedOrConnecting()) {
    return true;}
    return false;}

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Ca me parait pas mal.
    As-tu testé ? ça ne fonctionne pas ?
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    je teste, je teste...
    je pose mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
      /** Called when the activity is first created. */
    	private static final int retour1 = 1;
            private static final int retour2 = 2;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
     
        public boolean Online() {
                ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo netInfo = cm.getActiveNetworkInfo();
                if (netInfo != null && netInfo.isConnectedOrConnecting())
                {
                	  Intent intent = new Intent(main.this,internet.class);
                	  startActivityForResult(intent,retour1);}
                else
                {  Intent intent = new Intent(main.this,pasinternet.class);
                startActivityForResult(intent,retour2);}
    			return true;
            }
        }
    mon fichier java, si le téléphone peut accéder à Internet, je lance l'intent internet sinon l'intent pasinternet (j'ai du mal à comprendre l'utilité du return true, j'arrive pas à lancer l'appli, elle plante...vu le log cat, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12-10 12:56:57.390: ERROR/AndroidRuntime(399): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.test/android.test.main}: android.view.InflateException: Binary XML file line #2: Error inflating class layout
    mon main.xml est vraiment tout simple....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="iso-8859-1"?>
    <LinearLayout
    	xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    	android:background="@drawable/background"
    	/>

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    A première vue, ca marche avec l'émulateur, je teste en réel ce soir sur un android phone.
    L'erreur était dû à mon émulateur qui ne gérait pas l'API google.....

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.
    Attention, ce n'est pas parceque tu est connecté en 3G ou WIFI que tu as forcement accès à internet.
    Si tu veux vraiment savoir si tu as un accès internet, il te faudra tester. Il existe des url dite blanche (théoriquement gratuite en GET) que tu peux utiliser pour faire un teste et vérifier que tu as bien un accès internet.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    salut,
    merci pour ta précision, je ne comprends pas quand tu dis "Attention, ce n'est pas parce que tu est connecté en 3G ou WIFI que tu as forcement accès à internet."
    L'un (3G ou Wifi) de va pas sans l'autre ?!

    J'ai testé sur un android phone, lorsque je coupe le transfert de données (idem avec wifi), l'appli le détecte bien et l'accès à Internet ne se fait pas puisque android ne peut établir de connexion avec Internet et l'inverse marche aussi...

    Maintenant, si un android phone est connecté en 3G ou Wifi mais n'accède pas à Internet (comme tu le dis), faut que je prenne en compte ce cas particuliers...

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Je parle de cela car j'avais participé à un projet dont un module servait à détecter cela. Et la seule solution de savoir c'est un teste vers une url...

    Pour la 3G, rien ne dit que l’accès internet est active ou non. Suivant les opérateurs, ça peux dépend du forfait ou de la zone géographique.

    Pour le wifi, tu t'es connecté à une borne wifi public mais pas authentifié => y as bien une connexion wifi mais pas d'internet.

  8. #8
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    Salut,

    Pour savoir si mon téléphone a accès à Internet ou pas, j'utilise la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public boolean isNetworkAvailable() {
    	// Vérifie si la connexion internet est active...
    	ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    	return cm.getActiveNetworkInfo().isConnectedOrConnecting();
    }
    Ensuite, je teste juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isNetworkAvailable()) {
    Dans le Manifest, il faut donner les permissions d'accès au réseau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    Christian
    Nexus 1 sous Cyanogen - Acer A500

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Merci pour la précision. Effectivement, on peut être connecté à un point wifi et ne pas accéder au net, et dans ce cas là, une solution serait de faire un test url (comme tu le précises), je vais me pencher dessus.... je ne pense pas que ce cas soit récurent et je l'associe à un cas isolé mais c'est bien de savoir qu'il existe.
    Je fais la même chose avec le gps (je contrôle si le gps est activé ou pas), et tout marche bien (je cherche si il n'existe pas aussi des cas particuliers)...

    @cad13
    je pense que le code que tu as mis en ligne fait la même chose que le miens. Il contrôle si le transfert de données est activé (3G ou Wifi) mais rien ne certifie une connexion au net... je regarde ça plus attentivement....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Contrôler l'accès internet via un serveur
    Par anisj1m dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 24/02/2007, 00h49
  2. Pb d'accés à internet
    Par lemotard dans le forum Administration
    Réponses: 17
    Dernier message: 11/01/2006, 18h01
  3. Contrôle accès internet
    Par licorne dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/01/2006, 17h10
  4. [Flash] Probleme avec serveur Tomcat et accés Internet
    Par mc_chicken dans le forum Flash
    Réponses: 4
    Dernier message: 30/09/2005, 16h09
  5. [TOMCAT / FLASH] Probleme accés Internet
    Par mc_chicken dans le forum Tomcat et TomEE
    Réponses: 13
    Dernier message: 30/09/2005, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo