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 :

Comment bloquer l'acces


Sujet :

Android

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Comment bloquer l'acces
    voila je m'explique

    j'ai utiliser ce tutoriel pour faire un flux rss
    http://thibault-koprowski.fr/2010/10...-sous-android/

    le souci que je n'arrive pas a résoudre est que si le data(internet) n'est pas activer

    cela fait un force close , je n'est pas trouver d'info sur le net

    qui explique comme empêcher des force close ou d ouvrir l application a vide et mettre un message d'erreur

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je ne sais pas mais le tutorial en question a quelques erreurs majeures:

    1. Utilisation d'appels réseaux dans le thread UI...
    2. Retour non prototypé d'une ArrayList .... ArrayList<??> ?
    3. Utilisation de printStackTrace() systématiquement donc:
    * Aucune gestion des erreurs, par exemple si l'url est malformé, l'erreur disparait (printStackTrace) et l'objet "URL" est null, au try suivant on fait un appel sur cet objet => bim NullPointerException (non catchée).
    * Disparition systématique des erreurs dans l’abîme du stream d'erreur system (toujours préférer Log.e(TAG,"Mon erreur",e); )
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    j'ai quelque peut modifier j'ai chercher pour le printstacktrace il disent qu'il ne renvoi pas l'erreur, mais je n'est pas trouver de solution encore

    voici mon container les xxx cest mon html j'ai enlever pour pas faire de pub ^^


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    	    public static ArrayList<?> getFeeds(){
    	        // On passe par une classe factory pour obtenir une instance de sax
    	        SAXParserFactory fabrique = SAXParserFactory.newInstance();
    	        SAXParser parseur = null;
    	        ArrayList<?> entries = null;
    	        try {
    	            // On "fabrique" une instance de SAXParser
    	            parseur = fabrique.newSAXParser();
    	        } catch (ParserConfigurationException e) {
    	            e.printStackTrace();
    	        } catch (SAXException e) {
    	            e.printStackTrace();
    	        }
     
    	        // On défini l'url du fichier XML
    	        URL url = null;
    	        try {
    	            url = new URL( "xxxxxx");
     
    	        } catch (MalformedURLException e1) {
    	            e1.printStackTrace();
    	        }
     
    	        /*
    	         * Le handler sera gestionnaire du fichier XML c'est à dire que c'est lui qui sera chargé
    	         * des opérations de parsing. On vera cette classe en détails ci après.
    	        */
    	        DefaultHandler handler = new ParserXMLHandler();
    	        try {
    	            // On parse le fichier XML
                InputStream input = url.openStream();
    	            if(input==null)
    	                Log.e("erreur android","null");
    	            else{
    	                parseur.parse(input, handler);
    	                // On récupère directement la liste des feeds
    	                entries = ((ParserXMLHandler) handler).getData();
    	            }
    	        } catch (SAXException e) {
    	            e.printStackTrace();
    	        } catch (IOException e) {
    	            e.printStackTrace();
    	        }
     
    	        // On la retourne l'array list
    	        return entries;
        }
     
    	}

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    j'ai vu que certain avait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void error( SAXParseException e ) throws SAXException {
            System.out.println("ERREUR");
            e.printStackTrace();

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non mais une gestion d'erreur c'est quand même un peu à la base de la programmation....
    Comment l'appelant fait la différence entre:
    * Une erreur (et quelle erreur, comment afficher cette erreur) ?
    * Un résultat vide ?
    * Un bon résultat ?

    Ici le code corrigé
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    public static ArrayList<?> getFeeds() throws IOException
    {
            // on n'initialise pas à null, comme ca eclipse nous dira si il y a un chemin de programmation fautif !
            SAXParser parseur;
            URL url;
            ArrayList<?> entries;
     
            try {
                // On passe par une classe factory pour obtenir une instance de sax
    	    SAXParserFactory fabrique = SAXParserFactory.newInstance();
                parseur = fabrique.newSAXParser();
     
    	    // On défini l'url du fichier XML
    	    url = new URL("xxxxxx");
            } catch (Exception ex) {
                Log.e("MY-APP","RSS configuration error !",ex);
                // SURTOUT ON SIGNALE A L'APPELANT L'ERREUR !
                throw new IllegalStateException("Bad configuration in RSS reading",ex);
            }
     
    	try {
                 DefaultHandler handler = new ParserXMLHandler();
    	     // On parse le fichier XML
                 InputStream input = url.openStream();
    	     if (input==null) {
                     // c'est possible ca ?
    	         Log.e("erreur android","null");
                     entries = new ArrayList<?>(); // always something !
                 } else {
                     parseur.parse(input, handler);
                     // On récupère directement la liste des feeds
                     entries = ((ParserXMLHandler) handler).getData();
                 }
            } catch (Exception ex) {
    	     Log.e("MY-APP","RSS Reading error !",ex);
                 // SURTOUT ON SIGNALE A L'APPELANT L'ERREUR !
                 throw new IOException("RSS-Read error",ex);
            }
            // On la retourne l'array list
            return entries;
       }
    L'appelant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        try {
            ArrayList<?> entries = getFeeds();
        } catch (Exception ex) {
            // on affiche l'erreur à l'utilisateur !
            Toast.makeToast(this,"RSS Error: "+ex.getLocalizedMessage(),Toast.LONG).show();
        }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    super merci

    il me marquai une erreur ici j'ai corriger

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // SURTOUT ON SIGNALE A L'APPELANT L'ERREUR !
    	                 throw new IOException("RSS-Read error");
    mais qu'est ce que tu appelle l'appelant (enfin ou le placer)?


    le main si j'ai bien compris?


    j'ai aussi changer l'appelant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Toast.makeText(this,"RSS Error: "+ex.getLocalizedMessage(),Toast.LENGTH_LONG).show();

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    l'application ce lance déconnecter internet ça c'est cool


    mais le problème est que maintenant
    aucun flux n'apparait même connecter

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ArrayList<Feed> feeds = (ArrayList<Feed>) getFeeds();
    		try {
    			feeds = ContainerData.getFeeds();
    } catch (Exception ex) {
    	        // on affiche l'erreur à l'utilisateur !
    	        Toast.makeText(this,"RSS Error: "+ex.getLocalizedMessage(),Toast.LENGTH_LONG).show();
     
    		}
     }
     
    	private ArrayList<?> getFeeds() {
    		// TODO Auto-generated method stub
    		return null;
    comme ca j'ai bien l'erreur toast qui apparait ^^

    mais toujours rien quand je me log avec connection


    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
    23
    ArrayList<Feed> feeds = (ArrayList<Feed>) getFeeds();
    		try {
    			feeds = ContainerData.getFeeds();
     
     
    		} catch (Exception ex) {
    	        // on affiche l'erreur à l'utilisateur !
    	        Toast.makeText(this,"RSS Error: "+ex.getLocalizedMessage(),Toast.LENGTH_LONG).show();
     
    		}
     
            ListFeedAdapter lfa = new ListFeedAdapter(this, feeds);
            ((ListView)findViewById(R.id.listFeed)).setAdapter(lfa);
     
     
        }
     
    	private ArrayList<?> getFeeds() {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    }
    et comme ça plus de message erreur hors connexion,
    mais ça marche connecter mon flux apparait

  9. #9
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Dans un appel de fonction, il y a:
    un appelant (le code qui appelle la fonction et qui va utiliser le retour de celle-ci)
    un appelé (le code qui représente la fonction et qui va produire une valeur de retour).



    Non mais il faut pas tout recopier verbatim, c'était juste un exemple....

    Bien sur c'est le ContainerData.getFeeds() qui doit être appelé
    le premier getFeeds() il ne sert à rien

    Et bien sur il faut remplir l'adapter... et la list-view....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Voila après de longue heure vu mes connaissance ^^

    ça marche ,enfin vous voyez des erreur je suis preneur de conseil


    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
    23
    24
    25
    26
     
     
     
            ArrayList<Feed> entries = null;
    		try {
    			entries = ContainerData.getFeeds();
    			for (Feed entry : entries);
    			insertItem(entries);
     
    		} catch (Exception ex) {
    		    // on affiche l'erreur à l'utilisateur !
    		    Toast.makeText(this,"RSS Error: "+ex.getLocalizedMessage(),Toast.LENGTH_LONG).show();
     
     
    		}
     
     
     
    }
     
    	private void insertItem(ArrayList<Feed> entries) {
    		// TODO Auto-generated method stub
    ListFeedAdapter lfa = new ListFeedAdapter(this, entries);
     
            ((ListView)findViewById(R.id.listFeed)).setAdapter(lfa);
    	}}

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/11/2014, 14h16
  2. Comment bloquer l'accès aux partitions C et D?
    Par titeufdev dans le forum Windows XP
    Réponses: 1
    Dernier message: 09/01/2011, 23h00
  3. comment bloquer l'acces à mon code java
    Par developper2006 dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 06/02/2007, 14h33
  4. [C#] Comment limiter l'accès à certaines personnes ?
    Par moimoimoi dans le forum Services Web
    Réponses: 1
    Dernier message: 26/05/2004, 10h14
  5. TCustomGrid, comment bloquer une cellule ?
    Par Merfolk dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/04/2004, 13h55

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