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 :

Problème d'intent [Débutant(e)]


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut Problème d'intent
    Bonjour,

    Je me premet de vous demander de l'aide au sujet de ma programmation pour Android.

    Je débute sur cette plateforme et souhaite faire quelque chose de simple pour commencer : l'appel d'un intent.

    Je souhaite simplement faire appel au service "ALARM_SERVICE" en me remontant un toast 10 sec après l'appui d'un bouton.

    Voici le code de mon Activy:
    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
    50
    51
    52
    53
    54
    55
     
    package com.example.test;
     
    import java.util.Calendar;
    import android.os.Bundle;
    import android.app.Activity;
    import android.app.AlarmManager;
    import android.app.PendingIntent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    import android.content.Context;
    import android.content.Intent;
     
    public class MainActivity extends Activity {
    	Toast mToast;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            Button button = (Button)findViewById(R.id.button1);
            button.setOnClickListener(mOneShotListener);
        }
     
           private OnClickListener mOneShotListener = new OnClickListener() {
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
     
    		        PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this,0, intent, 0);
     
    		        Calendar calendar = Calendar.getInstance();
    		        calendar.setTimeInMillis(System.currentTimeMillis());
    		        calendar.add(Calendar.SECOND, 10);
     
    		        AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
    		        am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
     
    		        mToast = Toast.makeText(MainActivity.this,"Alarm Started",Toast.LENGTH_LONG);
                    mToast.show();
    			}};
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
     
    }



    Voici le code de ma classe appelé par mon intent :

    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
     
    package com.example.test;
     
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
     
    public class AlarmReceiver extends BroadcastReceiver{
     
    	@Override
    	public void onReceive(Context context, Intent intent) {
     
    			Toast.makeText(context, "C'est l'heure !!!",Toast.LENGTH_LONG).show();			
     
    	}
    }
    Ma classe affiche juste un toast pour me montrer que la classe a bien été appelé.


    Et pour finir mon manifest.xml:

    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
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.test"
        android:versionCode="1"
        android:versionName="1.0" >
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.test.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver android:name="com.example.test.alarmreceiver" android:process=":remote" />        
        </application>
    </manifest>
    Mon code compile bien, a l'appui de mon bouton j'ai bien mon toast de validation mais au bout de 10 sec rien ne se passe ....

    Cela fait 2 jour que je bloque et tourne sur internet pour trouver une solution sans résultat.

    Merci d'avance de votre aide / explication.

    N'hésitez pas a me donner des liens de tuto pour démarré, sachant que je ne sais pas vraiment me servir de Logcat : sa pourrai servir ^^

    PS : désolé pour les fautes d'orthographe.

  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
    Il y a pas une erreur dans le manifest sur la case de AlarmReceiver ?

    Ce devrait être com.example.test.AlarmReceiver non ?
    Ensuite je ne vois pas l'interêt du remote process .
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Je ne sais pas mais normalement le manifest n'est pas Case sensitif si ?? ( Je trouverais cela relativement abusé quand meme -_-' )

    Je testerai avec et sans les majuscule, pour le remote j'avoue ne même pas savoir a quoi il sert. D'après les exemples que j'ai suivi il y était à chaque fois. Je testerai avec et sans.

  4. #4
    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
    Le manifest (XML) l'est déjà de base. http://www.w3schools.com/xml/xml_syntax.asp

    Le contenu des attributs (en particulier le nom d'une classe Java) ce me semble plus que probable (et loin d'être abusé).

    Par contre pour d'autres valeurs (true/false) je ne sais pas.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Je testerai sa se soir.

    Je vous tien au courant.

    Mis à part cette erreur avez-vous noté quelque chose qui pourrais cloché du coté de mon code ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Ok, donc après test c'est OK.
    Voici ma correction :
    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
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.test"
        android:versionCode="1"
        android:versionName="1.0" >
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.test.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver android:name="com.example.test.AlarmReceiver" android:process=":remote" />        
        </application>
    </manifest>
    J'avoue être surpris du case sensitive, et j'avoue avoir test un peu tout et n'importe quoi au hasard mais pas sa ^^

    Merci pour l'aide.

  7. #7
    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
    Java comme la plupart des langages est Case-Sensitive.
    XML est Case-Sensitive.

    Donc il y a quand même de fortes chances pour que l'identifiant d'une classe Java dans un fichier XML soit case-sensitve.
    Non ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Je suis tout a fais d'accord sur le fait que le mix entre xml et java soit case sensitif si les deux le sont.

    Ces dernier temps j'ai beaucoup codé sur du C# et je ne pense pas qu'il soit Case Sensitif. Après je code avec l'auto complétion de visual studio donc je ne m'en suis peut être pas rendu compte. D'où ma surprise sur le Manifest.

    En tout cas merci pour ton aide, vraiment content que cela fonctionne

  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
    C# comme les autres est case-sensitive.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Je m'en suis jamais rendu compte xD

    Merci Ctrl+space avec l'autocomplete ^^

  11. #11
    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
    C'est surtout que tant qu'on n'utilise pas la reflexion du langage (chaine de caractère décrivant une classe / methode / membre), le compilateur est là pour nous rappeler à l'ordre (et l'auto-completion bien sur) que ce soit sous VStudio ou Eclipse.

    Par contre, quand on transforme une classe en une chaîne de caractère (pour l'instanciation dynamique), il n'y a plus personne pour nous aider............
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

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

Discussions similaires

  1. Problème avec Intent
    Par ChPr dans le forum Android
    Réponses: 3
    Dernier message: 09/02/2013, 23h49
  2. Problème d'Intent NotFoundException
    Par toshiro92 dans le forum Android
    Réponses: 4
    Dernier message: 19/07/2011, 13h41
  3. Problème d'Intent "browser"
    Par coscient dans le forum Android
    Réponses: 3
    Dernier message: 07/01/2011, 18h53
  4. problème d'intentation après une figure ou un tableau
    Par RouRa22 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 26/08/2010, 08h29
  5. Problème d' Intent
    Par abdo20 dans le forum Android
    Réponses: 2
    Dernier message: 14/01/2010, 13h20

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